2. Introduction
Mulesoft provides various ways to handle exceptions. Faults in Mule are
generally referred to as exceptions. Mule exceptions can be divided into two
categories:
âSystem exceptions are generally invoked when the exception is thrown at system level (i.e.,
when no message is invoked). This type of error occurs during application startup when there
is a connection failure with external systems â i.e., let's say Mule is trying to establish
a connection with a JDBC database to fetch and read messages. If the connection fails, Mule
invokes the system exception strategy.
âMessaging exceptions are generally invoked when the messaging exception strategy is
thrown into the flow.
3. Exception Strategies
Mule provides various exception strategies. Below is listed some of exception
strategies
âCatch Exception Strategy
âChoice Exception Strategy
âReference Exception Strategy
âRollback Exception Strategy
4. Catch Exception Strategy
The catch exception strategy catches all of the exceptions within the parent flow
and processes them, overriding the default exception strategy. Further, you can
use the catch exception strategy to:
âAvoid propagating exceptions to inbound connectors.
âAvoid propagating exceptions to parents via flow reference components.
âEnsure that the transaction processed by the flow will not roll back when the error occurs.
5. Reference Exception Strategy
You can create one or more global exception strategies in your Mule application
to reuse in your flows. First, create a global exception strategy, then add a
reference strategy exception to the flow to apply the error-handling behavior of
your new global catch exception strategy.
6. Choice Exception Strategy
You can define the choice exception strategy to customize how Mule handles the
message that throws the exception based on the message's exception type at the
moment it throws the exception.
âChoice exception strategy contains one or more exception or rollback strategies.
âChoice exception strategy cannot be nested with other choice exception strategies.
âAny Mule expression evaluator can be used as the expression attribute of an exception
strategy.
7. Rollback Exception Strategy
You can define the rollback exception strategy to ensure that the message throws
an error in the flow that can be rolled back for re-processing.
Rollback exception strategy can potentially create an infinite loop during message
failure.The rollback exception strategy catches the error and rolls the message
for reprocessing; the message throws error again; the rollback exception strategy
rolls the message again for reprocessing; and so on.
âTo avoid this infinite loop and responsibly manage unresolvable errors, you can apply two
limitations to a rollback exception strategy:
âDefine the maximum number of times that the rollback exception strategy attempts to
redeliver the message for processing.
âDefine a flow to handle messages that exceed the maximum number of redelivery attempts.
8. Various ways of defining the Exception Strategy
Define Error HandlerWithin Mule flow
You can define the exception strategy within a flow and it will not be referenced by other
flows within the Mule application.
Define Global Error Handler
You can define a global error handler that can be referenced from any flow (except sub-flows,
which inherit the calling flow error handler) using reference flow strategy.
Define Custom DefaultGlobal Error Handler
You can define custom default global error handlers that will become the default error
handler for your flows within the Mule application unless one of the above options is used in
the flow.