网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
⭐ Catches
发生异常时要执行的活动或活动集。
注意:您可以将多个异常和相应的活动添加到此块。
每当发生异常时,如果catch块无法处理它捕获的特定异常,您可以重新抛出异常。重新抛出会导致最初抛出的异常被重新抛出,以在更高级别上处理该异常。
⭐ Finally
执行Try和Catches块后要执行的活动或活动集。只有当没有抛出异常或发生错误并在Catches块中捕获时(不重新抛出),才会执行此部分。
♉ 实践
我们今天要处理的项目从excel文件读取输入数据,调用登录到UI演示应用程序的工作流,在提取的DataTable的行中循环,在UI演示字段中键入值,然后单击接受按钮。
让我们看看输入的Excel文件。
由于我们使用的是Read Range
活动,如果Excel文件在执行开始时打开,则流程会抛出异常。
我们将使用这个案例演示如何使用Try-Catch处理异常。
让我们运行这个项目,看看会发生什么。
这是一个错误。在错误消息中,我们可以看到:
引发异常的活动的名称-尝试读取输入数据
错误消息–进程无法访问该文件,因为另一个进程正在使用该文件
异常类型是System.IO.IOException
。
添加Try Catch
的最简单方法是右键单击某个活动或序列,然后选择Surround with Try Cath
操作。我们还有一个键盘快捷键:ctrl+T
。
另一个选项是从Activities(活动)面板添加它。
Try Catch
活动捕获序列或活动中的一个或多个指定异常类型,并提供执行恢复和继续执行或抛出异常的选项。
该活动包含三个模块:
- Try块保存可能引发异常的活动或序列。
- Catches块允许我们指定一个或多个异常类型,并为每个catch提供特定的步骤。
- Finally块包含一个活动,只有在未发生错误或已捕获错误时才应执行该活动。
最常见的异常类型是System.exception。它包括所有其他异常类型,因此处理步骤适用于任何抛出的异常。
现在您可能会想:“好吧,如果我们正在监视多个异常类型,其中一个包括另一个,比如System.exception和System.ArgumentException,会怎么样?”。
在这种情况下,如果系统。ArgumentException在运行时被捕获,那么在Catches块中执行的案例是最具体的案例,属于System.Argument异常。
对于我们的示例,因为我们知道抛出了什么类型的异常,所以我们将选择“SystemIO.IOException”,这是我们前面看到的抛出的异常。
在这里,在IO异常的捕获情况下,如果捕获到这种类型的异常,我们可以添加希望机器人执行的活动。
请注意,异常对象包含有关捕获的异常的信息。我们可以在这个块中引用它。
让我们在catch块中添加一个LogMessage
活动,并将其级别设置为warn
。
我们要显示的消息是异常错误消息,后面是异常源。这两条信息都存储为异常对象的属性。“异常点源”处的“异常点消息”。
接下来,我们将添加恢复步骤。让我们包括一个KillProcess
活动并添加我们的流程的扩展。请记住,此活动将关闭所有打开的Excel文件。