机器人过程自动化(RPA)入门 8. 异常处理、调试和日志记录

有时,自动化程序可能无法执行。为了处理此类情况,我们使用异常处理活动。在本章中,我们将从UiPath中可用的各种类型的异常处理方法、您可能遇到的异常以及如何处理它们开始。我们还将学习日志记录。本章涉及的一个重要主题是调试,以检查工作流是否正常工作,并更正任何错误。

在我们开始之前,让我们看看本章将涉及的主题:

  • 异常处理
  • 常见异常及其处理方法
  • 记录和截屏
  • 调试技术
  • 收集崩溃转储
  • 错误报告

异常处理

异常处理是处理程序或过程未能执行的进程的异常的一种方法。

为了处理程序中的异常,考虑的最佳实践是使用Try-catch活动。

可以在Activities(活动)面板中找到Try-catch(尝试捕获)活动。通过将Try-catch活动拖放到工作区中,我们可以处理异常。为了处理Try-catch块中的错误,我们可以将整个过程分为四个部分,以使其更简单:

  • 拖放Try-catch活动
  • Try块
  • Catch块
  • Finally 块

让我们构建一个Try-catch块来处理异常,具体步骤如下:

  1. 拖放Try-catch活动:创建一个空白项目。将流程图活动拖放到“设计器”面板中。在“活动”面板中搜索Try-catch活动,然后将其拖到流程图中。将其设置为“开始”节点:
  2. Try:当我们双击Try-catch活动并将其拖放到工作区内时,会出现Try活动的空间,如以下屏幕截图所示:

    在Try块中,我们必须放弃要执行的活动。删除一个写行活动来测试Try-Catch块的工作情况,如以下屏幕截图所示:
  3. Catches:在Catches活动中,首先我们必须单击Add new Catch,然后单击Add Exception选项,从中我们必须选择异常的类型。在大多数情况下,首选System.Exception。下面的屏幕截图显示了异常的类型。单击“浏览类型”选项可以查看更多异常:

    假设执行失败:例如,由于UI元素不可用,Click活动无法执行。在这种情况下,我们可以使用Catches块来查看已经发生的错误,或者在发生特定错误时使用替代方法。如下面的屏幕截图所示,我们将在Catches块中删除该活动。要打印消息,我们使用消息框:

    当我们点击Add new catch时,我们会被要求选择异常的类型。我们已经选择了System.Exception。现在,在异常块中,我们已经删除了一个Message-box活动。输入exception.ToString()将显示执行过程中发生的错误。
  4. 最后:当我们为序列定义了异常时,无论执行是否成功,Finally块都将始终有效。
    假设我们想向用户显示一条消息,通知流程已完成。为了确保整个Try-catch活动得到执行,我们将在Finally块中提供的区域中删除一个Message box活动,如以下屏幕截图所示:

常见异常及其处理方法

实现异常处理使机器人能够在各种可能的情况下工作,并处理可能出现的任何异常。在使用UiPath时,我们通常会遇到一些常见的例外情况。

UI元素不可用

在使用UiPath时,尤其是在web上,我们可能会遇到这种类型的错误。这是因为由于网页的动态行为,找不到UI元素。为了处理这个异常,我们必须对选择器属性进行更改,或者必须向选择器添加新的属性,以便可以很容易地找到UI元素。例如,如果我们有一个动态变化的变量,我们可以使用通配符,这样机器人就可以很容易地找到它。如下面的屏幕截图所示,我们可以使用通配符(在本例中为*)编辑选择器的动态属性。另一种方法是将其连接到活动元素:

处理运行时异常

在UiPath中工作时,我们可能会遇到运行时错误。要纠正这些错误,最佳实践之一是使用Try-catch活动,该活动可用于在运行时处理异常。通过在catch块中保留一个备选方案,我们也可以克服错误这是我们以前遇到的。

因此,将序列或工作流放入Try-catch活动将有助于处理运行时异常。

动态观察参考未设置为对象的瞬间

当没有提供某个变量所需的默认值时,通常会发生这种类型的错误。在这种情况下,我们需要为所需的变量提供一个默认值,如下面的屏幕截图所示。

在以下屏幕截图中显示的空白区域中,只需键入变量的默认值即可克服此错误:

索引超出了数组的界限,索引超出范围

当我们试图通过超出范围的索引迭代数组元素时,就会出现此错误。当我们不知道数组的大小,而只是随机键入索引来访问元素时,就会发生这种情况。

要解决此问题,我们必须检查数组或集合列表的索引大小。

在提供的超时时间内找不到图像

由于找不到图像,因此引发了此类型的异常。这可能是由于环境的改变,例如分辨率或主题设置。在这种情况下,使用一些选择器属性或指示锚点会很好地工作:

如前一张截图所示,当我们无法正确识别图像时,Indicate Anchor将帮助我们指示附近的UI元素,以便记录器能够识别正确的图像。

单击常规错误-无法在此UI节点上使用UI CONTROL API请使用UI硬件元素方法

当我们尝试使用Click活动的环境不支持Simulate或Send消息活动(用于单击UI元素)时,就会发生这种类型的错误。

有时,可能会选中SimulateClick或SendWindowMessages。在这两种情况下,当抛出异常时,我们只需要取消选中相应的框。

记录和截屏

UiPath有一个多流程体系结构,可以在执行器中单独执行每个工作流。执行器由UI机器人管理。因此,如果任何执行器停止工作,那么整个过程将不会受到影响。

客户端日志记录

客户端日志基本上使服务器能够记录连接。内容提供商可以在各种场景中使用这些日志,例如生成账单、跟踪媒体服务器使用情况,或者根据客户端服务器的速度提供适当质量的内容。

对于UiPath中的客户端日志记录,我们有一个NLog配置文件,可以轻松灵活地与数据库、服务器或任何其他NLog目标集成。日志记录可以使用该NLog.Config文件配置。UiPath Studio、Robot和工作流执行在客户端生成日志消息:

  • 由工作流执行生成的消息将使用执行日志记录源进行记录。由UiPath Studio生成的消息被记录为Studio Source,由UiPathRobot生成的消息则被记录为Robot日志记录Source。
  • 我们也可以从UiPath Studio访问这些日志。

我们可以通过单击EXECUTE选项中的“打开日志”来访问存储的日志。

默认情况下,这些日志保存在%Local App%\UiPath\Logs:

  • 可以在UiRobot.exe配置文件中启用生成的所有错误的自动日志记录机制,包括变量和自变量的值,该配置文件存在于C:\Users\Username\AppData\Local\UiPath\Logs-中,方法是在<Switches>部分内将Log参数从设置为0 到1。
  • 我们有两个活动可以用于日志记录,它们是Log消息和WriteLine活动。

服务器日志记录

如果已配置UiPath服务器,则执行过程中生成的所有日志也将发送到服务器。

您可以随时按下屏幕截图 CTRL+PrtScrn。

调试技术

UiPath Studio提供了各种调试技术,用于检查工作流是否成功运行,或找出错误以进行纠正。
在UiPath窗口的顶部,我们可以看到EXECUTE块内的各种可用调试方法,如以下屏幕截图所示:

如前面的屏幕截图所示,有各种调试技术。它们是

  • 设置断点
  • 慢步骤
  • 高亮
  • 暂停

设置断点

在调试工作流时,如果我们想将程序运行到特定位置,我们可以在两者之间设置断点。当我们必须在活动完全结束之前停止时,这很有用。在这种情况下,我们应该在上一个活动上使用断点,如下面的屏幕截图所示:

高亮显示的区域指示断点,因为执行在断点之后立即停止。为了继续,我们必须点击上角箭头所示的“继续”按钮:


当我们点击Step into时,相关部分将开始执行;在我们点击Stepover之后,执行将跳转到下一部分,依此类推。

慢步骤

这是EXECUTE块中的一个活动,通过它我们可以降低特定进程或活动的执行速度。通过这种方式,我们可以识别每一个过程,并密切关注在哪里可以找到错误。在“输出”面板中,可以查看所有活动或步骤。下面的屏幕截图显示了如何使用慢速步骤活动

如前面屏幕截图中的箭头所示,当我们单击慢速步骤时,该特定步骤的执行时间会增加。

高亮

突出显示用于突出显示我们在自动化过程中所采取的步骤,并识别工作流中的每一步。它在调试时非常有用,它的面板可以在功能区的“执行”部分的“选项”菜单中找到:

中断

Break活动用于在某一点中断流程。假设我们有一个序列一起执行七个活动,并且我们想要中断某个活动的执行。为此,我们可以使用Break活动,如以下屏幕截图所示:

调试时,“中断”选项可用(由前面屏幕截图中的箭头指示)。我们可以在任何时候中断。如果我们想继续,我们只需单击“继续”,如以下屏幕截图中的箭头所示:

或者,我们可以通过单击“停止”选项来停止执行。

收集崩溃转储

收集崩溃转储基本上是指在UiPath Studio崩溃时收集信息。我们可以启用和禁用崩溃转储。这些转储为我们提供了有关UiPath崩溃的信息。

内存转储有两种类型:完全转储和小型转储。完整转储为我们提供有关遇到的崩溃的完整信息,而小型转储仅为我们提供关于崩溃的主要信息。

当遇到崩溃时,我们首先必须确定崩溃的进程。通常,屏幕上会出现一个对话框,指示崩溃的性质和所涉及的应用程序。UiPath进程可能崩溃,例如UiStudio.exe、Uiexplorer.exe,或Uilauncher.exe,或者您想要自动化的目标应用程序可能会崩溃。

启用崩溃转储

以下是启用崩溃转储的步骤:

  1. 要启用崩溃转储,我们首先必须从以下位置下载完整转储的EnableFullDump.erg文件从https://cdn2.hubspot.net/hubfs/416323/QuickAnswers/EnableFullDump.reg?t=1513326308120或者EnableMiniDump.erg 文件从https://cdn2.hubspot.net/hubfs/416323/QuickAnswers/EnableMinDump.reg?t=1513326308120
  2. 双击该文件,然后单击“是”。访问注册表设置需要管理员权限
  3. dumps文件夹在%temp%,其完整路径如下c:\\users\\username\AppData\Local\TEMP;
  4. 当应用程序崩溃时,您会在TEMP文件夹中找到.dmg文件。例如,如果UiExplorer崩溃,则会在TEMP文件夹中找到类似UiExplorer.exe.7429.dmp等文件。

禁用崩溃转储

要禁用崩溃转储,请执行以下步骤:

1. 下载DisableDump.reg 文件从https://cdn2.hubspot.net/hubfs/416323/QuickAnswers/DisableDump.reg?t=1513326308120

2. 双击该文件并单击“是”以禁用崩溃转储,此操作需要管理权限。

错误报告

用户可能会在UiPath中遇到错误并想要报告。如前所述,UiPath有两种类型的客户:

  • Enterprise Edition客户
  • Community Edition客户

Enterprise Edition客户

如果您是企业客户,则可以通过一种非常简单的方式向UiPath社区报告错误:

  1. 只需转到此链接:https://www.UiPath.com.cn/Contact-technical-and-activations
  2. 您将被重定向到一个页面,在那里您必须填写一个包含一些基本详细信息的简单表格,然后上传遇到错误的文件,如下面的屏幕截图所示。
  3. 上传后,只需点击提交按钮。UiPath将向您提供正确的解决方案:

Community Edition 用户

由于社区版是免费的,UiPath不向社区版用户提供支持。但是,所有遇到错误的解决方案都可以通过访问UiPath论坛找到。所有类型的错误及其解决方案都会在论坛中进行适当的讨论。
您也可以转到资源页面,找到问题的解决方案。

https://forum.UiPath.com

总结

在本章中,您学习了如何使用异常处理技术和日志错误屏幕截图,以及用于调试或报告的其他有用信息。您还学习了如何调试代码。

您已经学习了如何制作自动化项目,以及如何使用异常处理。然而,你的学习并没有就此结束。在下一章中,我们将通过教授管理和维护代码的最佳实践来改进您的学习。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Martin-Mei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值