- 发行说明
- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 控制流程
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 日志记录
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 编码自动化
- 基于触发器的 Attended 自动化
- 对象存储库
- ScreenScrapeJavaSupport 工具
- 扩展程序
- Studio 测试
- 故障排除

Studio 用户指南
全局异常处理程序
“全局异常处理程序”是一种工作流类型,设计目的是在遇到执行错误时确定项目的行为。每个自动化项目仅可设置一个“全局异常处理程序”。
只有流程可以使用全局异常处理程序,库项目不能使用。
“全局异常处理程序”有两个参数不得删除。
第一个参数是 errorInfo,方向为“输入”,它会存储抛出的错误和失败的工作流的相关信息。您可在“日志消息”活动中设置要记录的错误级别。
对于 errorInfo 使用 ActivityInfo 属性可获取抛出异常的活动的名称,然后可以在“输出”面板中查看。
第二个参数 result 具有“输出”方向,当流程遇到错误时,第二个参数用于确定流程的下一个行为。可以将以下值赋值给 result 参数:
- “继续”- 再次抛出异常。
- “忽略”- 忽略异常,执行从下一活动起继续。
- “重试”- 重试抛出异常的活动。对
errorInfo使用RetryCount方法来计算重试活动的次数。 - “中止”- 执行在运行当前的“全局异常处理程序”后停止。
备注:
任何工作流都可以在 Studio 中被标记为全局异常处理程序,但库项目和
Main.xaml除外
为控制出现错误时工作流的行为,“全局异常处理程序”将重试该活动三次,然后中止并显示错误消息。
调试期间处理错误
当在调试过程中检测到异常时,系统会高亮显示发生故障的活动,使其暂停执行,并会在“局部”和“调用堆栈”面板中显示异常所属的类型及其详细信息。
“继续”、“停止”、“重试”、“忽略”、“重新启动”和“慢步”等调试操作在功能区中均可用。 “忽略”用于从下一个活动继续执行。
“重试”按钮用于在没有全局异常处理程序介入的情况下重新尝试执行当前活动。“继续”操作将运行全局异常处理程序,同时考虑先前为 result 参数选择的值,即“继续”、“忽略”、“重试”或“中止”。
当将全局异常处理程序用于包含“尝试捕获”的项目时,请确保将活动分组到“尝试”容器中的序列。 否则,全局异常处理程序将不会执行。
如果存在嵌套的活动,“全局异常处理程序”仅对调用堆栈中的各个活动执行。不过,它不会对直接封装在“Try Catch 异常处理”中的活动执行,除非它们包含在某一活动中。
全局异常处理程序用法示例
下面的示例显示在执行过程中抛出异常时项目的行为。
自动化项目设置为在 TXT 文件中键入一些文本,然后关闭应用程序,但在保存文件之前不会关闭。
创建工作流
- 按照“创建基本流程”页面中的步骤创建空白流程。
- 打开记事本并将文档保存在计算机上。您可以将文件命名为
1.txt。 - 在“活动”面板中,搜索“使用应用程序/浏览器”,并将其拖动至“设计器”面板中。
- 在“使用应用程序/浏览器”中:
- 单击“指定应用程序以进行自动化”,然后将鼠标指针移动到记事本窗口。当该窗口突出显示后,单击其中的任意位置。 “使用应用程序/浏览器”活动已更新,路径已添加到“应用程序路径”字段,并且该活动内出现窗口截图。
- 在“属性”面板中,为“关闭”属性选择“始终”选项。这可确保在自动化运行后关闭记事本。
- 在“使用应用程序/浏览器”活动的执行容器中添加“键入”活动。单击“在应用程序中指明”,以选择记事本窗口,然后在“输入此项”字段中添加输入文本并用引号括起。此活动会将文本写入记事本。
- 从“活动”面板中,将“键盘快捷方式”活动添加到工作流。 指定记事本窗口,然后选择“记录快捷键”,并按 Ctrl + S 以记录在键入文本后保存文件的按键组合。
产生的工作流应该如下所示:

添加全局异常处理程序
-
在“功能区”的“设计”选项卡部分中,选择“新建”>“全局处理程序”。“新建全局处理程序”窗口将打开。键入处理程序的“名称”,并将它保存到项目路径中。单击“创建”,一个“全局异常处理程序”就会添加到自动化项目中。

-
返回到之前创建的工作流并进行修改,以使活动无法执行。例如,在“使用应用程序/浏览器”活动中,选择“精确匹配标题”选项,并确保文件已关闭,然后再单击功能区中的“运行文件”。
当全局异常处理程序遇到异常时,它会记录发生故障的活动的名称,然后开始重试该活动三次。如果每次都遇到相同的异常,并且重试次数达到 3 次,并且抛出异常的活动级别上中止执行。
如果某一次重试期间没有遇到异常,那么工作流的执行将继续进行,“全局异常处理程序”也不会进入。