Error son eventos que ocurran en un programa y que no pueden ser gestionadas de manera normal. Por otro lado, tenemos que las excepciones son eventos que son reconocidos, categorizados y gestionados por el programa.
Excepciones del sistema
Excepciones inesperadas son una de las excepciones de sistema conocidas, también son llamadas Excepciones de Aplicación (AE), pertenecen al framework .NET y son categorizados bajo la misma clase de System.Exception.
Las excepciones más conocidas que te puedes encontrar en proyectos son:
- NullReferenceException: Ocurre cuando una variable no tiene contenido
- IndexOutOfRangeException: Ocurre cuando el índice de un objeto está fuera de los límites de la colección
- ArgumentException: Se lanza cuando un método invocado y al menos uno de sus argumentos no contiene los parámetros especificados del método
- SelectorNotFoundException: Se lanza cuando el robot es incapaz de encontrar el selector especificado para una actividad en una aplicación objetivo dentro del periodo de tiempo.
- ImageOperationException: Ocurre cuando una imagen no ha sido encontrada en el tiempo establecido
- TextNotFoundException: Ocurre cuando el texto indicado no se encuentra dentro del tiempo establecido
- ApplicationException: Describe un error ubicado en un problema técnico como que la aplicación no responde
Excepciones de Negocio
Las excepciones esperadas se les refiere como Business Rule Exceptions(BRE).
Una excepción de negocio hace referencia a la información usada en el proceso de automatizacion, puede ser que este incompleto o incorrecto desde la perspectiva de negocio. Cuando esta excepción ocurre el robot detiene el proceso y requiere de intervención humana para tratar el error lanzado.
El mensaje asociado a la excepción de negocio debería de contener información relevante para el proceso, no se generan automáticamente por lo que tienen que ser definida por un desarrollador usando la actividad de Throw Activity dentro de un TryCatch.
Try Catch, Throw y Rethrow
Esta actividad capta un tipo de excepción especificado en una secuencia o actividad y muestra la notificación de error o la evita y continua con la ejecución.
Como mecanismo el Try Catch ejecuta sus actividades en el bloque Try y si ocurre algún error las actividades se ejecutan en el bloque de Catches, el bloque Finally solo se ejecuta si no se han encontrado excepciones o cuando las excepciones son atrapada y gestionada en el bloque Catch.
El Try Catch es una actividad muy útil, pero es importante evitar su uso excesivo. Atrapar una excepción debería ser hecho cuando hay una razón válida, normalmente el bloque Catch es responsable de la gestión de la excepción y habilita recuperación de error.
En conclusión, este mecanismo nos permite gestionar los errores de manera estructurada y se asegura de que el bloque Finally es ejecutada en escenarios donde no se encuentran excepciones.
Retry Scope
Esta actividad nos permite repetir una ejecucion de actividades cerradas siempre y cuando no se cumpla una condición en específico o se encuentre un error.
El propósito del Retry Scope es atrapar y gestionar errores, aunque la diferencia clave es que esta actividad se centra en reintentar la ejecucion de actividades en vez de proveer un mecanismo de gestión más complejo, esto simplifica el proceso reintentando el proceso de manera automática hasya que la condición es cumplida o ha saltado un error.
The ContinueOnError Property
Es una propiedad que especifica si la ejecucion de la actividad debería de continuar hasta cuando aparece un error en la actividad.
Este campo solo apoya valores Booleanos (Verdadero y Falso), el valor predeterminado es falso. Cuando la propiedad se establece como Verdadero y aparecen errores dentro de la actividad también serán ignorados, esto significa que si un error aparece va a continuar la ejecución sin detenerse.
De todos modos, es importante tener en cuenta que el hecho de que este establecido como Verdadero no se recomienda para todas las situaciones, tiene que ser usado con cautela.