Catch errors
Stay organized with collections
Save and categorize content based on your preferences.
Implements a custom exception handler based on the HTTP status code returned by a GET request. The workflow catches a potential exception and returns a predefined error message.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Catch errors\n\nImplements a custom exception handler based on the HTTP status code returned by a GET request. The workflow catches a potential exception and returns a predefined error message.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Catch errors](/workflows/docs/reference/syntax/catching-errors)\n- [Make an HTTP request](/workflows/docs/http-requests)\n\nCode sample\n-----------\n\n### YAML\n\n # Use a custom exception handler to catch exceptions and return predefined\n # error messages; if the exception isn't recognized, the workflow\n # execution fails and throws the exception returned by the GET request\n - read_item:\n try:\n call: http.get\n args:\n url: https://example.com/someapi\n auth:\n type: OIDC\n result: API_response\n except:\n as: e\n steps:\n - known_errors:\n switch:\n - condition: ${not(\"HttpError\" in e.tags)}\n next: connection_problem\n - condition: ${e.code == 404}\n next: url_not_found\n - condition: ${e.code == 403}\n next: auth_problem\n - unhandled_exception:\n raise: ${e}\n - url_found:\n return: ${API_response.body}\n - connection_problem:\n return: \"Connection problem; check URL\"\n - url_not_found:\n return: \"Sorry, URL wasn't found\"\n - auth_problem:\n return: \"Authentication error\"\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=workflows)."]]