美文网首页RPA实战(UiPath)经验总结
R025---UiPath之必杀技Try Catch(第二版)

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

作者: 柴班说 | 来源:发表于2019-06-29 11:25 被阅读0次

    ​一、缘起

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

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

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

    二、用法(下面有截图)

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

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

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

    最后,在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并编辑其选择器,选择器内容是这样。

    此选择器确保“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

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

    相关文章

      网友评论

        本文标题:R025---UiPath之必杀技Try Catch(第二版)

        本文链接:https://www.haomeiwen.com/subject/aooucctx.html