R025---UiPath之必杀技Try Catch(第二版)

​一、缘起

 

在众多的编程语言中,开发程序都离不开Try Catch,UiPath中也有Try Catch Activity。

 

程序框架中靠Try Catch来保障程序在运行出错的时候,不仅可以获知错误,而且其他程序可以继续运行。

 

这么重要,柴班带你详细学习下Try Catch。

 

二、用法(下面有截图)

 

  1. 将开发好的流程放入Try Catch的Try中;

  2. 在Try Catch范围内,定义一个名为ProcessError的变量,类型System.Exception;

  3. 然后,在Catches中定义一个名为exception异常变量(用于在出现异常时,获取异常信息),并通过Assign,将exception赋值给ProcessError;

  4. 最后,在Finally中放个if Activity,if Activity的Condition设置为:ProcessError is nothing,then中放流程执行成功的操作,else中放执行失败时要做的操作。

 

 

下图是上面用法的Demo截图,图中用红色箭头标明了流程发生异常时,传递异常的路线:

 

三、总结

 

  • 程序中不需要太多的Try Catch,一般一个足够,除非特殊用途;

  • 使用Try Catch,需要对它完全理解后使用,否则,若只把它当成一个隐藏错误的方法,那可是对Try Catch的最大误解。

 

你误解Try Catch了吗?

 

如果需要详细学习Try Catch,可看下面的中文翻译(部分内容根据自己理解做了适当修改),并可到其英文网址(https://activities.uipath.com/docs/try-catch)下载写好的例程。

 

四、附:UiPath网站Try Catch中文翻译

 

Try Catch

 

全称:System.Activities.Statements.TryCatch

用途:

捕获你设计的流程中的指定异常类型,并显示错误通知或 将其解除并继续执行。

外观:

由三部分组成:

1.    Try - 放编写的流程(该流程有可能发生你未写入你流程逻辑的错误的)。

2.    Catches - 发生错误时要执行的Activity或Activity集。

异常 - 要查找的异常类型。请注意,您可以添加多个类型的异常。

3.    Finally- Try Catch块之后要执行的Activity或Activity集。只有在没有抛出异常或发生错误并且在Catch部分中捕获时,才会执行此部分。

 

 

 

注意:

如果Activities放在Try Catch的Try部分中,并且Continue On Error属性的值为True,则在执行项目时不会捕获任何错误;举例如下:

属性

DisplayName - Activity的显示名称。

Private - 如果选中,则不再以Verbose级别记录变量和参数的值。

 

技巧:按快捷键“Ctrl + T”,将所选的activity置于Try CatchTry部分内。

 

示例

 

为了更好地理解Try Catch的用法,我们创建了一个自动化程序,它从随机名称生成器网站收集多个名称并将它们写入Excel电子表格中。

 

点击UiPath英文网站的这里,可以下载初始工作流程。(运行会出程序异常)

 

Build DataTable 创建一个用于存储所收集的名称的表。

调用另一个工作流来读取Web数据。

最后,Excel application scope用于在Excel文件中写入收集的信息。

 

首先,让我们运行自动化来检查是否有任何错误。

请注意,将显示“ 工作流异常”界面:

 

该异常类型字段告诉我们是什么问题,在Try Catch的Catches部分中,

用作在工作流程执行期间查找的异常类型。

 

正如您在上面的屏幕截图中看到的,在运行示例工作流时,AttachBrowser容器选择器似乎存在问题。问题是选择器无法使用“生成随机名称 - 伪名称生成器”名称来标识浏览器窗口。

 

要捕获这个异常,需要进行以下操作:

1.      从Activities面板中拖一个“Try Catch”到流程编辑区。

2.      在Try Catch的Try部分中放一个Invoke(引用了一个文件叫readWebData.xaml)。

Try会监视Invoke,当它出现异常时进行捕捉。

 

 

3.      在“Catches”部分中,从下拉列表中选择UiPath.Core.SelectorNotFoundException。

如果没有找到这个异常类型,点击“ Browse and Select a .Net Type”在弹出窗口中找到它。

 

4.      可选操作)您可以在“ Catches”部分中添加一个“ Message Box”Activity,在Message Box的“ 内容”字段中填写引号之间的信息性消息,在我们的示例中“Internet Explorer已关闭。

它现在将打开以继续工作流程执行“。这意味着每当捕获到异常时,都会显示此消息框,以通知用户浏览器即将打开,以便成功执行工作流。

 

5.      拖个“Element Exists ”Activity到“ Finally”部分中。

“ElementExists”Activity用于检查InternetExplorer是否打开了我们需要的网址https://www.fakenamegenerator.com。

6.      打开Internet Explorer并访问前面提到的网址。

7.      使用Indicate on screen功能选择Internet Explorer窗口。

8.      选择“Element Exists ”Activity并编辑其选择器,选择器内容是这样<wnd app='iexplore.exe' title='Generate a Random Name - Fake NameGenerator - Internet Explorer' />。

此选择器确保“Element Exists ”Activity仅查找上述页面打开的InternetExplorer窗口。

9.      在Output属性中,创建一个具有相关名称的变量,例如browser。这是一个布尔变量,可帮助您确定Internet Explorer是否在指示的页面上处于打开状态。

10.   在“Element Exists ”Activity下添加If Activity。如果Internet Explorer已关闭(通过browser的值来判断),则打开Internet Explorer,否则继续工作流。

11.   在If Activity的Condition中,写入browser=false。此条件用于验证浏览器是否已打开,并根据其值执行其他操作。

12.   在Then部分中拖入OpenBrowser Activity。如果满足条件(浏览器已关闭),则使用“Open Browser”Activity打开它,从而不影响工作流程。

13.   在“Open Browser”的Url字段中键入https://www.fakenamegenerator.com。

14.   Else部分留空,以便如果已在Internet Explorer打开指定的网站,则工作流按预期继续。

15.   运行工作流并注意以下其中一项:

 

·        如果Internet Explorer已关闭 - 将通知用户Internet Explorer即将打开,以便工作流程可以继续。浏览器打开,所有预期的数据都被收集并写入Excel文件。

·        如果Internet Explorer已打开 - 工作流程按预期执行。

 

提示:原版网站的这里可下载最终程序。

https://activities.uipath.com/docs/try-catch

 

(正文结束)

 

附1:关于本公众号

微信公众号名称:柴班说

欢迎转载与分享,也请注明出处。

 

附2:关于本文作者

微信号:chaijw

识别下面的二维码,可以与作者进行更为深入的交流。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值