Introduction to Error Handling¶
If you are reading this, you are probably familiar with errors that occur during the execution of a scenario. This mostly happens if a service is unavailable due to a failure, a service responds with unexpected data or the validation of input data fails.
Information: If a module throws an error during the scenario execution and there is no error handling route attached to the module, a default error handling logic is executed as described on the Error processing page.
By adding an error handler route to a module, you can replace the default error handling logic with your own. Ibexa Connect offers 5 different directives, any of which can be inserted at the end of your error handler routes. Visit this page to learn about the directives in detail.
Learn the basics of using Error Handlers in this 4-minute video.
Error handler route
To add an error handler route to a module (let us call it Module X), right-click (or touch and hold if you are using a touch screen-device) the module and select Add error handler as shown below:
You will see a list of Directives as well as the apps being used in your scenario. If Module X is the last module in your route, you need to choose one of the directives. Else, you can go on to add one or more modules to your route, in which case, the Ignore directive is applied by default to Module X and in the event of an error, the subsequent modules on that route are processed.
As you can see below, if an error occurs while executing the Create a folder*module, the **Ignore* directive will be applied automatically and the scenario will move to the next module on the error handler route if the filter "Data Error Takes Place" returns one or more bundles.
However, if there is no error, the scenario will move to the List all files in a folder module on the regular route.
Also, to differentiate an error handler route from a regular route, the former is composed of transparent circles as shown above.
Error handling directives
The directives are briefly explained below and you may visit the Directives page if you'd like to understand them in detail.
There is a total of five directives that can be grouped into the following 2 categories based on whether a scenario execution should continue or not:
The following directives ensure that a scenario execution continues:
Resume allows you to specify a substitute output for the module with the error and the scenario execution status is marked as a success.
Ignore simply ignores the error and the scenario execution status is marked as a success
Break stores the input to the queue of incomplete executions and the scenario execution status is marked as a warning.
On the other hand, if a scenario execution should be stopped, one of the following directives need to be used:
Rollback stops the scenario execution immediately and marks its status as an error
Commit stops the scenario execution immediately and marks its status as a success