studio
2020.10
false
UiPath logo, featuring letters U and I in white
不在支持范围内
Studio 用户指南
Last updated 2023年12月20日

全局异常处理程序

全局异常处理程序是一种工作流类型,设计目的是在遇到执行错误时确定项目的行为。每个自动化项目仅可设置一个全局异常处理程序

注意:只有流程可以使用全局异常处理程序,库项目不能使用。

全局异常处理 程序有两个不应删除的 参数

第一个参数是 errorInfo,方向为“输入”,它会存储抛出的错误和失败的工作流的相关信息。您可在“日志消息”活动中设置要记录的错误级别。
注意:errorInfo 使用 ActivityInfo 属性可获取抛出异常的活动的名称,然后可以在“输出”面板中查看。
第二个参数 result 具有输出方向,当流程遇到错误时,第二个参数用于确定流程的下一个行为。可以将以下值赋值给 result 参数:
  • 继续 - 再次抛出异常。
  • 忽略 - 忽略异常,执行从下一活动起继续。
  • 重试 - 重试抛出异常的活动。对 errorInfo 使用 RetryCount 方法来计算重试活动的次数。
  • 中止 - 执行在运行当前的全局异常处理程序后停止。

    注意:除库项目外,任何工作流都可以标记为 Studio 中的全局异常处理程序

调试期间处理错误

当在调试过程中检测到异常时,系统会高亮显示发生故障的活动,使其暂停执行,并会在局部调用堆栈面板中显示异常所属的类型及其详细信息。

功能区提供调试操作 ,例如“ 继续” 、 “停止”、“ 重试” 、“ 忽略” 、“ 重新启动 ” 和“ 慢步骤 ”。 “忽略 ”用于继续执行下一个活动。

“重试”按钮用于在没有全局异常处理程序介入的情况下重新尝试执行当前活动。“继续”操作将运行全局异常处理程序,同时考虑先前为 result 参数选择的值,即继续忽略重试中止
备注:

全局异常处理程序用于含有“Try Catch 异常处理”的项目时,请确保将活动分组到尝试容器内的序列中。否则,系统不会执行全局异常处理程序

对于嵌套活动,将为调用堆栈中的每个活动执行全局异常处理程序。不过,它不会对直接封装在“Try Catch”中的活动执行,除非它们包含在某一活动中。

全局异常处理程序用法示例

下面的示例显示在执行过程中抛出异常时项目的行为。

自动化项目设置为在空白的已保存记事本文档中单击,键入一些文本,然后关闭应用程序,但在单击“保存”按钮保存文档之前不会关闭应用程序。

为控制出现错误时工作流的行为,全局异常处理程序将重试该活动三次,然后中止并显示错误消息。

创建工作流

  1. 按照 “ 创建基本流程 ”页面中的步骤创建空白流程。
  2. 打开记事本并将文档保存在计算机上。
  3. 活动面板中,将键入活动拖动到设计器面板。该活动将自动添加到序列中。
  4. 输入活动中,单击“在屏幕上指示”。Studio 将最小化,并允许您在记事本窗口内单击以创建选取器。在文本字段中,键入所需文本并用引号括起。
  5. 活动面板中,将发送热键活动添加到工作流。指示记事本窗口,从活动中选择 Ctrl,在“按键”字段中键入 s。这将在键入文本后保存记事本文档。
  6. “活动”面板中,将“关闭应用程序”活动添加到工作流。使用“指明在屏幕上”指示记事本窗口。产生的工作流应该如下所示:


添加全局异常处理程序

  1. “功能区”“设计”选项卡部分中,选择“新建”>“全局处理程序”。系统将打开“新建全局处理程序”窗口。键入处理程序的“名称”,并将它保存到项目路径中。单击“创建”,即会向自动化项目中添加“全局异常处理程序”
  2. 变量选项卡中,创建一个名为 retryCountInt32 变量,将其作用域设置为整个全局异常处理程序,将默认值字段留空。该变量存储重试次数,并在每次遇到错误时将重试次数增加 1
  3. 创建一个名为 failedActivity字符串变量,并将其作用域设置为整个工作流。此变量存储发生故障的活动的名称,并在输出面板中显示该名称。
  4. 前往活动面板,并在全局处理程序序列中的日志错误下方添加一个赋值活动。将 retryCount 添加到活动然后将其赋值到 errorInfo.RetryCount 表达式,该表达式计算抛出异常的次数。
  5. 添加另一个赋值活动,在其中将 errorInfo.ActivityInfo.Name 表达式赋值给 failedActivity 变量。此时,工作流应该如下所示:


  6. 在工作流中添加“IF 条件”活动。将“条件”设置为 retryCount < 3 以将重试次数限制为 3。
  7. “Then”类别的“赋值”活动部分中,将 ErrorAction.Retry 赋值给 result 变量,从而让“全局异常处理程序”重试抛出了异常的活动。
  8. Else 类别中,为 result 赋值 ErrorAction.Abort,以使全局异常处理程序在满足条件时中止执行。If 活动应如下所示:


全局异常处理程序遇到异常时,它会记录发生故障的活动的名称,然后开始重试该活动三次。如果每次都遇到相同的异常,并且重试次数达到 3 次,则在抛出异常的活动级别上中止执行。

如果某一次重试期间没有遇到异常,那么工作流的执行将继续进行,同时不会进入“全局异常处理程序”

  • 调试期间处理错误
  • 全局异常处理程序用法示例
  • 创建工作流
  • 添加全局异常处理程序

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。