🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
🐬个人主页:会敲键盘的肘子
🐰系列专栏:UiPath
🦀专栏简介:UiPath在传统的RPA(Robotic process automation)的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。
🐶座右铭:总有一天你所坚持的会反过来拥抱你。
🌈写在前面:
本文介绍了做好Automation Process准备工作中最重要的一部分:
如何预测、检测和处理流程中的异常
。我们将首先介绍UiPath中遇到的常见异常。然后我们将介绍特定的异常处理活动
TryCatch、Throw、Rethrow、Retry Scope和Global Exception Handler
。我们还将了解UI自动化活动共享的一个非常有价值的属性ContinueOnError
。
👉本文关键字:RPA、UiPath、Low-code、No-code、异常处理、.Net
文章目录
1️⃣ 背景
♈ 什么是RPA
RPA(Robotic process automation) 代表机器人过程自动化。
它是一种软件程序,可在与计算机应用程序交互时模仿人类行为并实现重复的、基于规则的流程的自动化。
♉ 什么是UiPath
UiPath 是一种机器人流程自动化工具,用于自动化枯燥和重复的任务。它由罗马尼亚企业家 Daniel Dines 和 Marius Trica 于 2005 年创立。它还消除了自动化无聊任务的人工干预,并为所有活动提供了拖放功能,它是最简单的 RPA 工具。
♊ 为什么使用UiPath
UiPath在传统的RPA的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。
♌ 为什么需要知道如何处理异常
因为创建自动化项目的最终目标是将其投入生产。
当我们的流程在生产中运行时,可以合理地预期,我们开发流程的理想条件可能会随着时间的推移而改变。资源可能变得不可访问,选择器可能更改,输入数据可能以意外的格式提供,等等。
当机器人遇到不准备处理的情况时,它会抛出异常。
异常处理意味着提供识别这些事件并从中恢复的指令。而未处理的异常将终止执行。
♋ 环境
-
UiPath Studio Community 2022.4.3
-
Windows 10
-
.Net
♌ 本文收获
通过本文,您可以学会:
-
识别并区分不同类型的异常。
-
描述常见的异常处理技术,并解释何时使用它们。
-
在自动化项目中使用
TryCatch、Throw和Rethrow
活动。 -
在自动化项目中使用
Retry Scope
活动。 -
描述
ContinueOnError
属性。 -
在有人参与和无人参与的情况下使用
全局异常处理
程序。
2️⃣ 识别并区分不同类型的异常
在了解最常见的异常之前,让我们快速区分错误(errors)和异常(exceptions):
♈ Errors
Errors是特定程序通常无法处理的事件。根据导致错误的原因,有不同类型的错误,例如:
-
Syntax errors,编译器/解释器无法将编写的代码解析为有意义的计算机指令。
-
User errors,其中软件确定用户的输入由于某些原因不可接受。
-
Programming errors,其中程序不包含语法错误,但不产生预期结果。这些类型的错误通常被称为bug。
♉ Exceptions
Exceptions是程序识别(捕获)、分类和处理的事件。更具体地说,有一个由开发人员配置的例程,当捕获到异常时会被激活。有时,处理机制可以简单地停止执行。一些Exceptions与所使用的系统有关,而其他Exceptions与业务流程的逻辑有关。
让我们详细了解不同类型的异常。
⭐ System exceptions
以下是在使用UiPath开发的项目中可能遇到的最常见的异常列表。
一般来说,下面提到的所有这些异常类型都是从System派生的。异常,因此例如在TryCatch中使用此泛型类型将捕获所有类型的错误。
- NullReferenceException - 使用没有设置值(未初始化)的变量时发生。
- IndexOutOfRangeException - 当对象的索引超出集合的限制时发生。
- ArgumentException - 当调用方法并且至少一个传递的参数不符合被调用方法的参数规范时引发。
- SelectorNotFoundException - 当robot在超时期间内无法在目标应用程序中找到活动的指定选择器时引发。
- ImageOperationException - 在超时期间未找到图像时发生。
- TextNotFoundException - 在超时时间段内未找到所指示的文本时发生。
- ApplicationException - 描述源于技术问题的错误,例如应用程序没有响应。
⭐ Business exceptions
业务异常主要是指Automation Process中使用的信息。从商业角度来看,它可能不完整或不正确。
当发生业务异常时,机器人会停止流程,并且需要人工干预来处理抛出的异常。
业务异常的一些例子是:自动化项目所依赖的某些数据不完整、缺失、超出了设定的界限(比如试图从ATM中提取超过每日限额的数据),或者没有通过其他数据验证标准
。
业务规则异常不会自动生成为系统异常。它们必须由开发人员使用Throw Activity
定义,并在TryCatch
中处理。
3️⃣ TryCatch、Throw和Rethrow
本章节结束,您可以学会:
-
描述常见的异常处理技术,并解释何时使用它们。
-
在自动化项目中使用
TryCatch、Throw和Rethrow
活动。
♈ 概述
TryCatch
活动捕获序列或活动中指定的异常类型,并显示错误通知或将其取消并继续执行。
作为一种机制,TryCatch运行Try块中的活动,如果发生错误,则执行Catches块中的行为。Finally块仅在未引发异常或在Catches块中捕获并处理异常时执行(不重新引发)。
⭐ Try
有可能引发错误的活动。
⭐ Catches
发生异常时要执行的活动或活动集。
注意:您可以将多个异常和相应的活动添加到此块。
每当发生异常时,如果catch块无法处理它捕获的特定异常,您可以重新抛出异常<