UiPath Studio Guide

Global Exception Handler

The Global Exception Handler is a type of workflow designed to determine the project’s behavior when encountering an execution error. Only one Global Exception Handler can be set per automation project.

Note:

The Global Exception Handler is not available for library projects, only processes.

The Global Exception Handler has two arguments, that should not be removed.

The first argument is errorInfo with the In direction and it stores information about the error that was thrown and the workflow that failed. The level of the error to be logged can be set in the Log Message activity.

Note:

Use the ActivityInfo property for errorInfo to get the name of the activity which threw the exception and view it in the Output panel.

The second argument, result has the Out direction and it is used for determining the next behavior of the process when it encounters an error. The following values can be assigned to the result argument:

  • Continue - The exception is re-thrown.
  • Ignore - The exception is ignored, and the execution continues from the next activity.
  • Retry - The activity which threw the exception is retried. Use the RetryCount method for errorInfo to count the number of times the activity is retried.
  • Abort - The execution stops after running the current Global Exception Handler.

Note:

Any workflow may be flagged as a Global Exception Handler in Studio, except for library projects.

Handling Errors During Debugging

When an exception is detected during debugging, the activity which faulted is highlighted, the execution stops, and the pop-up Runtime Execution Error message appears. The available options are:

  • Break: it keeps the workflow in the pause state, allowing you to inspect each activity and the variables or arguments in the Locals panel.
  • Retry: attempts to execute the current activity again and if the exception is detected again, the Runtime Execution Error message appears.
  • Ignore: ignores the activity that caused the error and continues the execution from the next activity.
  • Continue: runs the GlobalHandler.xaml and takes into consideration the behavior previously set in the Global Exception Handler in case an exception occurs.

Note:

When using the Global Exception Handler with a project that includes a Try Catch, make sure to group activities into a Sequence inside the Try container. Otherwise, the Global Exception Handler does not execute.

In the case of nested activities, the Global Exception Handler executes for each activity in the call stack. However, it does not execute for activities directly encapsulated in a Try Catch, unless they're contained in an activity.

Example of Using the Global Exception Handler

The following example showcases the project’s behavior when an exception is thrown during execution.

The automation project is set to click inside an empty and saved Notepad document, type in some text and then close the application, but not before clicking the save button to save it.

To control the workflow’s behavior in case of an error, the Global Exception Handler retries the activity three times and then aborts with an error message.

Creating the Workflow

  1. Create a Blank Process by following the steps in the About Automation Projects page.
  2. Open Notepad and save a document on your machine.
  3. From the Activities panel, drag a Type Into activity to the Designer panel. The activity is automatically added to a Sequence.
  4. In the Type Into activity, click on Indicate on screen. Studio minimizes and lets you click inside the Notepad window to create the selector. In the text field, type in the desired text between quotation marks.
  5. 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.
  6. 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:

Adding a Global Exception Handler

  1. In the Design tab part of the Ribbon, select New > Global Handler. The New Global Handler window opens. Type in a Name for the handler and save it in the project path. Click Create, a Global Exception Handler is added to the automation project.
  2. In the Variables tab, create an Int32 variable named retryCount, set its scope to the entire Global Exception Handler, leave the Default value field empty. The variable stores the number of retries and it increases the number by 1 each time an error is encountered.
  3. Create a String variable named failedActivity and set its scope to the entire workflow. This variables stores the name of the activity which faulted and reveals it in the Output panel.
  4. From the Activities panel, add an Assign activity below the Log Error in the Global Handler sequence. Add the retryCount to the activity and assign it the errorInfo.RetryCount expression, which counts the number of times the exception is thrown.
  5. Add another Assign activity in which assign the errorInfo.ActivityInfo.Name expression to the failedActivity variable. At this point, the workflow should look like this:
  1. Add an If activity to the workflow. Set the Condition to retryCount < 3 to limit the number of retries to 3.
  2. In the Assign activity part of the Then category, assign the ErrorAction.Retry to the result variable to have the Global Exception Handler retry the activity which gave the exception.
  3. In the Else category, assign the ErrorAction.Abort to the result to have the Global Exception Handler abort the execution when the condition is met. The If activity should look like this:

When the Global Exception Handler encounters an exception, it logs the name of the activity which faulted and starts retrying the activity three times. If it encounters the same exception each time and the number of retries reaches 3, the execution is aborted at the level of the activity which threw the exception.

If during one of the retry, an exception isn’t encountered, the execution of the workflow continues and the Global Exception Handler doesn’t step in.

Download example


Global Exception Handler


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.