< Volver al curso

5. Manipuladores de errores


En la clase de hoy vamos a aprender cómo utilizar los manipuladores de errores. Los manipuladores de errores o Error Handlers sirven para poder personalizar el error sin depender de los que hay por defecto. Los dos Error Handlers principales son On Error Continue y On Error Propagate, cada uno de ellos con un comportamiento diferente a la hora de entrar en acción y lanzar un error.

Crear Manipuladores de errores

Los manipuladores de errores, Error Handlers, nos permiten personalizar el comportamiento y salida de los errores que suceden en un evento de Mule. Los manipuladores se pueden configurar desde 3 puntos, o mejor dicho, en 3 niveles.

  1. A nivel de aplicación, en la configuración global. Este es el que se tratará en la clase de hoy.
  2. A nivel de Flow o Private Flow.
  3. A nivel de operación de un Flow. Esto se realiza con el componente Try-Scope

Os dejo una imagen para que observéis cada uno de los niveles donde se pueden configurar los manipuladores de errores.

 

Alcance de los errores

Denominamos alcance de los errores a las acciones que realizan cuando el manipulador de errores salta. En este caso encontramos dos tipos de alcances, en inglés es llamado Scope.

  • On Error Continue
  • On Error Propagate

Cada uno de los alcances de errores pueden contener cualquier número de componentes, o mejor dicho, Event Processors como un Set Payload, Set Variable, Transform Message, etc.

Alcance On Error Propagate

Cuando se configure un On Error Propagate dentro del manipulador de errores, todos los componentes que residan dentro se procesarán  y dejaran de ejecutarse los componentes que se encontrasen dentro del Flow. Una vez se ejecuten todos los componentes dentro del manipulador de errores, lanzará un error como respuesta a la llamada del HTTP Listener directamente o relanzará el error al siguiente nivel.

El siguiente nivel quiere decir a otro Flow diferente o podría ser desde el manipulador de errores del Try-Scope hacia el Flow que lo contiene.

A continuación se muestra un ejemplo teniendo 2 Flows y realizando una llamada de uno a otro.

  1. Flow que tiene configurado un manipulador de errores con un On Error Propagate llama a otro Flow mediante Flow Reference.
  2. El Flow referenciado devuelve error el componente Get Flights y tiene configurado un manipulador de errores con un On Error Propagate. Salta directamente a la sección de manipuladores de errores sin acabar de ejecutar el resto de componentes del Flow.
  3. El On Error Propagate relanza el error al Flow que le ha llamado mediante Flow Reference.
  4. El On Error Propagate lanza un error 500 a la petición HTTP Listener, devolviendo el error.description configurado en Responses.

 

Alcance On Error Continue

Cuando se configure un On Error Continue dentro del manipulador de errores, todos los componentes que residan dentro se procesarán  y dejaran de ejecutarse los componentes que se encontrasen dentro del Flow. Una vez se ejecuten todos los componentes dentro del manipulador de errores, devolverá una respuesta satisfactoria como a la llamada del HTTP Listener directamente o relanzará esta respuesta al siguiente nivel.

A continuación se muestra un ejemplo teniendo 2 Flows y realizando una llamada de uno a otro.

  1. Flow que tiene configurado un manipulador de errores con un On Error Continue llama a otro Flow mediante Flow Reference.
  2. El Flow referenciado devuelve error el componente Get Flights y tiene configurado un manipulador de errores con un On Error Propagate. Salta directamente a la sección de manipuladores de errores sin acabar de ejecutar el resto de componentes del Flow.
  3. El On Error Propagate relanza el error al Flow que le ha llamado mediante Flow Reference.
  4. El On Error Continue lanza un correcto 200 a la petición HTTP Listener, devolviendo el payload como respuesta, que es «Error Flow».

 

En la clase no se empezará a jugar con los On Error Continue y On Error Propagate a nivel de Flows, sino que se configurará a nivel global. Si quieres saber cómo se realiza, ¡no pierdas más el tiempo y entra a la clase!

Sin más, Manipuladores de errores ¡dentro vídeo!


El siguiente contenido solo está disponible para los miembros PRO.
Únete ahora

Clases del curso


< Volver al curso