- Notas relacionadas
- Primeros pasos
- Instalación y configuración
- Proyectos de automatización
- Dependencias
- Tipos de flujos de trabajo
- Sequences
- Diagramas de flujo
- Máquinas de estado
- Controlador global de excepciones
- Comparación de archivos
- Mejores prácticas de automatización
- Integración del control de código fuente
- Depuración
- La herramienta de diagnóstico
- Analizador de flujo de trabajo
- Acerca del analizador de flujo de trabajo
- ST-NMG-001: convención sobre nombres de variables
- ST-NMG-002: convención de nombres de argumentos
- ST-NMG-004: duplicación de nombres de visualización
- ST-NMG-005: anulación de variables
- ST-NMG-006: argumentos de anulación de variables
- ST-NMG-008: longitud variable excedida
- ST-NMG-009: variables de datos prefijados
- ST-NMG-011: argumentos de prefijo Datatable
- ST-NMG-012: valores predeterminados de los argumentos
- ST-NMG-016: longitud del argumento excedida
- ST-DBP-002: recuento de Argumentos elevado
- ST-DBP-003: bloque de Catch vacío
- ST-DBP-007: múltiples capas de diagramas de flujo
- ST-DBP-020: propiedades de salida no definidas
- ST-DBP-023: flujo de trabajo vacío
- ST-DBP-024: comprobación de actividad de persistencia
- ST-DBP-025: requisito previo para la serialización de variables
- ST-DBP-026: retraso en el uso de la actividad
- ST-DBP-027: mejor práctica de persistencia
- ST-DBP-028: requisito de serialización de argumentos
- ST-USG-005: argumentos de actividad codificados
- ST-USG-009: variables no utilizadas
- ST-USG-010: dependencias sin utilizar
- ST-USG-014: restricciones de los paquetes
- ST-USG-020: mensajes de registro mínimos
- ST-USG-024: guardado sin usar para más adelante
- ST-USG-025: uso incorrecto de los valores guardados
- ST-USG-026: restricciones de actividad
- ST-USG-027: paquetes necesarios
- Variables
- Argumentos
- Espacios de nombres importados
- Flujo de control
- Repo. de objetos
- Registro
- La herramienta de migración ScaleCoordinates
- La herramienta ScreenScrapeJavaSupport
- StudioPro
- Extensiones
- Solución de problemas
- Internet Explorer x64
- Problemas con Microsoft Office Interop
- Identificación de elementos de la interfaz de usuario en PDF con opciones de accesibilidad
- Identificación de los elementos de la interfaz de usuario tras las actualizaciones de Windows
- Aplicaciones JxBrowser
- Supervisión de eventos de usuario
- Java en App-V
- Compatibilidad y limitaciones de Microsoft App-V
- Solución de problemas de Citrix
El Controlador global de excepciones es un tipo de flujo de trabajo diseñado para determinar el comportamiento del proyecto al encontrar un error de ejecución. Solo se puede establecer un Controlador global de excepciones por proyecto de automatización.
El Controlador global de excepciones no está disponible para proyectos de biblioteca, solo procesos.
The Global Exception Handler has two arguments, that should not be removed.
El primer argumento es errorInfo con la dirección En y almacena información sobre el error que se ha lanzado y el flujo de trabajo que falló. El nivel de error que se registrará se puede establecer en la actividad Mensaje de registro.
Usa la propiedad ActivityInfo para errorInfo para obtener el nombre de la actividad que ejecutaron la excepción y verla en el panel Salida.
El segundo argumento, result, tiene la dirección Fuera y se usa para determinar el siguiente comportamiento del proceso cuando se encuentra un error. Los siguientes valores se pueden asignar al argumento result:
-
Continuar: la excepción se vuelve a ejecutar.
-
Ignorar: la excepción se ignora y la ejecución continúa desde la siguiente actividad.
-
Reintentar: la actividad que ejecutó la excepción se vuelve a intentar. Usa el método
RetryCountparaerrorInfopara contar el número de veces que se ha recuperado. -
Abortar: la ejecución se detiene después de ejecutar el Controlador de excepciones global actual.
Nota:Cualquier flujo de trabajo puede marcarse como Controlador de excepciones global en Studio, excepto los proyectos de biblioteca y
Main.xaml.
Gestión de errores durante la depuración
Cuando se detecta una excepción durante la depuración, se resalta la actividad que ha fallado, se detiene la ejecución y se mencionan el tipo y los detalles de la excepción en los paneles Locales y Pila de llamadas.
Debugging actions like Continue, Stop, Retry, Ignore, Restart and Slow Step are available in the ribbon. Ignore is used for continuing the execution from the next activity.
El botón Reintentar intenta ejecutar de nuevo la actividad actual sin que actúe el Controlador de excepciones global. La acción Continuar ejecuta el Controlador de excepciones teniendo en cuenta los valores de la opción previamente para el argumento result, ya sean Continuar, Ignorar, Reintentar o Abortar.
Al usar el Controlador de excepciones global con un proyecto que incluye Intentar capturar, asegúrate de agrupar las actividades en una Secuencia dentro del contenedor Intentar. De lo contrario, el Controlador de excepciones global no se ejecutará.
En el caso de actividades anidadas, se ejecuta el Controlador global de excepciones para cada actividad de la pila. Sin embargo, no se ejecuta para las actividades encapsuladas directamente en un Intento de captura, a menos que estén en una actividad.
Ejemplo de uso del Controlador global de excepciones
El siguiente ejemplo muestra el comportamiento de un proyecto cuando se produce una excepción durante la ejecución.
El proyecto de automatización está configurado para hacer clic dentro de un documento del Bloc de notas guardado vacío, escribir algún texto y luego cerrar la aplicación, pero no sin antes hacer clic en el botón de guardar.
Para controlar el flujo de trabajo en caso de un error, el Controlador de excepciones global reintenta la actividad tres veces y luego la aborta con un mensaje de error.
Crear el flujo de trabajo
-
Create a Blank Process by following the steps in the Creating a Basic Process page.
-
Abre el Bloc de notas y guarda un documento en tu máquina.
-
From the Activities panel, drag a Type Into activity to the Designer panel. The activity is automatically added to a Sequence.
-
En la actividad Escribir en, haz clic en Indicar en la pantalla. Studio se minimiza y te permite hacer clic en la ventana del Bloc de notas para crear el selector. Escribe el texto deseado entre comillas en el campo de texto.
-
From the Activities panel, add a Send Hotkey activity to the workflow. Indicate the Notepad window, and select Ctrl from the activity, type in s in the Key field. This saves the Notepad document after the text was typed in.
-
From the Activities panel, add a Close Application activity to the workflow. Indicate the Notepad window using Indicate on screen. The resulted workflow should look like this:
Añadir un Controlador global de excepciones
-
En la pestaña Diseño de la Cinta, selecciona Nuevo > Controlador global. Se abre la ventana Nuevo controlador global. Escribe un Nombre para el controlador y guárdalo en la ruta del proyecto. Al hacer clic en Crear se añade un Controlador global de excepciones al proyecto de automatización.
-
En la pestaña Variables, crea una variable
Int32llamadaretryCount, establece su ámbito en todo el Controlador de excepciones global, y deja el campo de valor Por defecto vacío. La variable almacena el número de reintentos y aumenta el número1veces cada vez que se encuentra un error. -
Crea una variable Cadena denominada
failedActivityy establece su ámbito en todo el flujo de trabajo. Esta variable almacena el nombre de la actividad que ha fallado y la revela en el panel Salida. -
From the Activities panel, add an Assign activity below the Log Error in the Global Handler sequence. Add the
retryCountto the activity and assign it theerrorInfo.RetryCountexpression, which counts the number of times the exception is thrown. -
Añade otra actividad Asignar que asigne la expresión
errorInfo.ActivityInfo.Namea la variablefailedActivity. Tras esto, el flujo de trabajo debe tener este aspecto: -
Add an If activity to the workflow. Set the Condition to
retryCount < 3to limit the number of retries to 3. -
En la parte de Asignar actividad de la categoría Entonces, asigna el
ErrorAction.Retrya la variableresultpara que el Controaldor global de excepciones reintente la actividad que haya causado la excepción. -
En la categoría Otro, asigna
ErrorAction.Aborta laresultpara que el Controlador global de excepciones aborte la ejecución cuando se cumpla la condición. La actividad Si debe tener este aspecto:
Cuando el Controlador global de excepciones encuentra una excepción, registra el nombre de la actividad que ha fallado e intenta ejecutar la actividad tres veces. Si encuentra la misma excepción cada vez y el número de reintentos alcanza 3, la ejecución se aborta en el ámbito de la actividad que lanzó la excepción.
Si durante uno de los reintentos no se encuentra una excepción, la ejecución del flujo de trabajo continúa y el Controlador global de excepciones no interviene.