Procesos/objetos: tipos de excepciones

Las excepciones ocurren durante la ejecución de un proceso por varias razones. Puede haber, por ejemplo:

  • un error en el proceso (p. ej., una expresión no válida ingresada en un cálculo);
  • error al coincidir un elemento (p. ej., intenta "presionar" un botón que no existe);
  • algo malo con los datos (p. ej., un tipo de cuenta que no sabemos cómo procesar).

Generalmente, cuando ocurre una excepción, el proceso se detiene y su estado en la Sala de control se muestra como Terminado. A veces no es conveniente que el proceso se detenga cuando se encuentra una excepción. En ciertos contextos, podemos manejar la excepción y continuar con el procesamiento. Por ejemplo, si un sistema del cliente nos dice que no podemos trabajar en un caso en particular porque está bloqueado, podemos atrapar la excepción resultante, marcar ese caso para que se procese más tarde y luego el proceso puede continuar ejecutándose y trabajando en casos posteriores.

Jerarquía del procesamiento

El concepto de manejo de excepciones más importante es la naturaleza jerárquica del procesamiento. Cuando ocurre una excepción, sucede lo siguiente:

  • Si la fase actual está dentro de un bloqueo y ese bloqueo contiene una fase de recuperación, el control se transfiere allí.
  • De lo contrario, si la página actual contiene una fase de recuperación (fuera de un bloqueo), el control se transfiere allí.
  • Si esta página fue llamada por otra (p. ej., como una referencia de página, una acción o una llamada de subproceso), la excepción ocurre en la fase que realizó la llamada original y las reglas anteriores se aplican una vez más.
  • En última instancia, si la excepción no es manejada por todo lo anterior, debe ocurrir en una fase de la página principal del proceso principal original, sin que haya una fase de recuperación. En este punto, el proceso en sí se detiene en un estado de excepción y el estado del proceso se marcará como Terminado.

Si ocurre una nueva excepción durante la recuperación, el proceso anterior se reanuda desde el siguiente nivel de la jerarquía.

Fase de excepción

Una fase de excepción se utiliza para generar una excepción en cualquier momento durante el flujo del proceso. Una excepción planteada deliberadamente de esta manera se comporta de la misma forma que cualquier excepción normal que pueda ocurrir durante el procesamiento.

La fase de excepción tiene los siguientes detalles asociados:

  • Tipo de excepción: una etiqueta definida por el usuario que describe la categoría de excepción. Los usuarios pueden crear sus propias categorías, como "Excepción de datos" y "Excepción de tiempo límite". El producto de Blue Prism recopila y recuerda automáticamente todos los tipos de excepción creados en todos los procesos y objetos de negocio. Esto significa que los mismos tipos pueden reutilizarse globalmente de manera uniforme en todos los procesos u objetos.

    El objeto debe guardarse antes de que cualquier tipo de excepción recién creado esté disponible para su selección en el menú desplegable Tipo de excepción.

  • Detalle de la excepción: una expresión que contiene cualquier detalle pertinente de la excepción.
  • Preservar el tipo y el detalle de la excepción actual: esta opción se puede utilizar con las Recover Stages para conservar el detalle de la excepción, lo que garantiza que se conserve una cuenta precisa del error para el registro de sesión, incluso después de que se haya limpiado el proceso. Si se habilitan, los campos Tipo de excepción y Detalle de excepción están deshabilitados ya que el tipo y el detalle se conservan de la excepción original. Esto permite solucionar las excepciones e identificar la fuente del error.

Fase de recuperación

Una fase de recuperación proporciona un medio de recuperación de una excepción. Si se produce una excepción en una página y esa página contiene una fase de recuperación, el flujo de proceso continúa allí. Una vez que el flujo de proceso se transfiere a una fase de recuperación, el proceso está en modo de recuperación y permanece así hasta que se encuentre una fase de reanudación o hasta que se produzca otra excepción. Si se produce otra excepción mientras aún se encuentra en modo de recuperación, la misma fase de recuperación no detecta la excepción, sino que esta se "propaga" al siguiente nivel.

Fase de reanudación

Una fase de reanudación se utiliza para indicar que la recuperación ha finalizado y que el procesamiento normal continúa. Por lo general, una fase de recuperación estará seguida por una serie de fases de decisión o elección que conducen a diferentes tipos de limpieza (según el tipo de excepción). Estas fases se pueden volver a vincular al flujo principal, que debe realizarse a través de una fase de reanudación. Sin una fase de reanudación, cualquier excepción adicional que haya ocurrido no manejaría la misma fase de recuperación, sino que podría propagarse al siguiente nivel, como si no hubiera un manejo de excepción implementado. Una vez que se haya aprobado la fase de reanudación, se volverá a realizar el manejo normal de excepciones.

Bloquea

Un bloque es una región rectangular que agrupa todas las fases que están completamente dentro de este. Un bloque puede contener su propia fase de recuperación, que manejará las excepciones que se produzcan dentro de este.

Visualmente, un bloque aparece como un rectángulo con el área interna sombreada. El bloque también tiene su nombre en una etiqueta en la esquina superior izquierda. Este es el único campo disponible en el formulario de propiedades del bloque.

Cuando se selecciona un bloque de la barra de herramientas, se puede crear un nuevo bloque arrastrándolo con el mouse hasta el tamaño deseado. Los bloques se pueden cambiar de tamaño arrastrando una de sus cuatro esquinas. Es un error que los bloques se superpongan; si tiene bloques superpuestos, se mostrarán en Validación del proceso.

Funciones de excepción

La vista de árbol de funciones del editor de expresiones incluye una rama adicional llamada Excepciones, que contiene las tres funciones de excepción ExceptionText(), ExceptionDetail() y ExceptionStage(). Estas funciones se pueden utilizar a partir de un cálculo o decisión cuando el proceso está en modo de recuperación.

Además, está presente un tercer elemento "Tipos", que puede expandirse y que contiene todos los tipos de excepciones utilizados anteriormente. Al arrastrar estos elementos desde la vista de árbol se pega una constante de cadena, p. ej., "UserNameTooLong" en la vista de expresión.

Cuadros de diálogo de mensajes de excepción

Los diálogos de mensajes de excepción que suelen aparecer durante la depuración no se mostrarán si una fase de recuperación maneja la excepción. En cambio, el flujo del proceso saltará a la fase de recuperación. Además, el mensaje que solía aparecer en un diálogo se mostrará ahora encima de la barra de estado de Process Studio.

Visor del historial de registros

Se puede acceder al visor del historial de registros haciendo clic en el botón que está a la derecha de la barra de estado. Al hacer clic en este botón, aparece un cuadro de texto que muestra las últimas diez líneas de salida de registro. Esto es útil cuando necesita averiguar qué provocó la excepción o de dónde provino cuando una subpágina la generó.