假設您有用於建立訂單的整合流程,新訂單會在 MySQL 適用的 Cloud SQL 中建立。這個流程會使用連接器工作 (在本例中為「Create an order」) 連線至 MySQL 適用的 Cloud SQL。如果資料庫發生異常,連接器工作在將新訂單插入資料庫時會擲回錯誤。最佳做法是,您必須在整合中同時使用錯誤處理策略和錯誤擷取器。
如要新增錯誤處理策略,請在整合設計工具中按一下連接器任務,開啟任務設定窗格。下圖顯示為「Create an order」連接器工作設定的錯誤處理策略:
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-03 (世界標準時間)。"],[[["\u003cp\u003eApplication Integration distinguishes between permanent errors (client-side) and temporary errors (server-side), each leading to permanent or temporary task failures respectively.\u003c/p\u003e\n"],["\u003cp\u003eError messages can be found in the Execution logs page for integration execution errors and in the Integration editor page for publishing errors.\u003c/p\u003e\n"],["\u003cp\u003eApplication Integration offers error handling strategies to specify actions upon temporary task failures, and error catchers to define custom responses to specific task or execution failures.\u003c/p\u003e\n"],["\u003cp\u003eIntegrations can be executed in synchronous mode, where results are immediate, or asynchronous mode, suitable for long-running or non-immediate result scenarios.\u003c/p\u003e\n"],["\u003cp\u003eAs a best practice, both error handling strategies and error catchers should be implemented, as the integration will first exhaust its configured strategy and then utilize the error catcher upon failure.\u003c/p\u003e\n"]]],[],null,["# Introduction to error handling\n\nSee the [supported connectors](/integration-connectors/docs/connector-reference-overview) for Application Integration.\n\nIntroduction to error handling\n==============================\n\n\nIn Application Integration, errors might occur when you're testing and publishing an integration, or during the execution of an integration. These errors can occur due to various client-side and server-side issues, and are broadly classified as follows:\n\n- **Permanent errors:** All client-side errors such as, authentication failures, data validation errors, are considered as permanent errors. Permanent errors cause permanent task failures.\n- **Temporary errors:** All server-side errors such as, HTTP 503 (service unavailable), HTTP 400 (bad request), are considered as temporary errors. Temporary errors cause temporary task failures.\n\n\nError messages appear in the following locations:\n\n- **Execution logs page** : Displays errors encountered during the execution of an integration. Each execution of an integration has a separate log entry. For information about execution logs page, see [Execution logs](/application-integration/docs/viewing-logs).\n- **Integration editor page** : Displays errors encountered when you publish an integration. The errors are displayed at the bottom of the integration editor page. For information about the integration editor page, see [Integration editor](/application-integration/docs/integrations-ui-layout).\n\nFor information on the list of error codes that you might encounter, see [Error codes](#codes).\n\nError handling methods\n----------------------\n\n\nApplication Integration supports the following error handling methods to throw, catch, retry, and customize the errors encountered in your integration:\n\n- [**Error handling strategies**](/application-integration/docs/error-handling-strategy): The error handling strategy for a task specifies the action to take if the task fails due to a temporary error. You can specify different error handling strategies for both synchronous and asynchronous execution modes.\n- [**Error catcher**](/application-integration/docs/error-catcher): Error catcher defines a customized way to handle the failure of an identified trigger, task, or edge condition in your integration. You can define one or more error catchers in a single integration to handle task errors and/or execution failures. Each error catcher can be invoked using a trigger, called the [Error Catcher trigger](/application-integration/docs/configure-error-catcher-trigger), to run the set of configured integration tasks customized to handle the error.\n\nYou can use error handling methods for both synchronous and asynchronous modes of integration execution:\n\n- **Synchronous executions:** In synchronous mode, the execution result of the integration is available soon after the integration runs. Synchronous mode is helpful in scenarios where you want the execution result immediately after the integration runs. Triggers execute the integration in the synchronous mode include the following:\n - [Test or publish an integration](/application-integration/docs/test-publish-integrations)\n - Call the [`projects.locations.integrations.execute`](/application-integration/docs/reference/rest/v1/projects.locations.integrations/execute) API\n - Call the integration from a [sub-integration in the synchronous mode](/application-integration/docs/configure-call-integration-task)\n- **Asynchronous executions:** Asynchronous executions use the fire and forget model. Asynchronous mode is helpful in scenarios where integrations can take a long time to run, or the execution result is not required immediately after the integration runs. Triggers that execute the integration in the asynchronous mode include the following:\n - All execution that are not synchronous are executed in asynchronous mode. Some of the common asynchronous mode includes, but is not limited to:\n - [Schedule trigger](/application-integration/docs/configure-schedule-trigger)\n - [Cloud Scheduler trigger](/application-integration/docs/configure-cloud-scheduler-trigger)\n - [Cloud Pub/Sub trigger](/application-integration/docs/configure-pubsub-trigger)\n - [Salesforce trigger](/application-integration/docs/configure-salesforce-trigger)\n - Call the [`projects.locations.integrations.schedule`](/application-integration/docs/reference/rest/v1/projects.locations.integrations/schedule) API\n - Executions that are resumed from a suspension or a approval task are also executed in aynchronous mode, even if the initial execution was is synchronous mode.\n\nBest practice\n-------------\n\nUse both [error handling strategy](/application-integration/docs/error-handling-strategy) and [error catcher](/application-integration/docs/error-catcher) in your integration. For any error, the integration follows the strategy defined in the error handling section. After exhausting the error handling strategy that are configured, error catcher logic is triggered. Use [system variables](/application-integration/docs/variables#system-variables) to capture the value of error code and error message to send to your error catcher flow.\n\nExample\n-------\n\nSuppose you have an integration flow to create an order. New orders are created in Cloud SQL for MySQL. The flow uses a [connector task](/application-integration/docs/configure-connectors-task) (**Create an order** in this example) to connect to Cloud SQL for MySQL. In case of a database outage, the connector task throws errors while inserting new orders into the database. As a best practice, you must use both [error handling strategy](#error-handling-strategy) and [error catcher](#error-catcher) in your integration.\n\nTo add the error handling strategy, click the connector task in the integration designer to open the task configuration pane. The following diagram shows the error handling strategy configured for the **Create an order** connector task:\n\n\nTo add the error handling strategy, click the **Call REST Endpoint** task in the integration designer to open the task configuration pane. The following diagram shows the error handling strategy configured for the **Call REST Endpoint** task:\n\n\nTo add the error catcher, click the **Call REST Endpoint** task in the integration designer to open the task configuration pane. In the **Error Catcher** section, add the error catcher details. The following diagram shows the error catcher configured for the **Call REST Endpoint** task:\n\n\nError codes\n-----------\n\n\nThe following table describes the errors that you might encounter, and the corresponding causes for the errors. Application Integration uses the canonical error codes defined in [`google.rpc.Code`](https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto).\n\nFor information about Application Integration errors and different error handling strategies, see [Errors and error handling](/application-integration/docs/error-handling)."]]