Mule provides options for handling errors through exception strategies. There are two categories of exceptions in Mule: system exceptions and messaging exceptions. System exceptions are handled by system exception strategies when no message is involved. Messaging exceptions are handled by messaging exception strategies when a message is being processed through a Mule flow and throws an exception. Messaging exception strategies can contain message processors and nested exception strategies to precisely handle exceptions. Each flow can contain one messaging exception strategy which can be a choice strategy referring to other nested strategies.