【问题标题】:How to get Exception source “Activity Description name”如何获取异常源“活动描述名称”
【发布时间】:2018-12-05 05:34:01
【问题描述】:

当 UIPath 项目中发生异常时,我会发送一封包含异常信息的电子邮件。似乎有一个问题,但我只能通过查看选择器信息来查看错误发生的位置,例如:

Cannot find the UI element corresponding to this selector: 
<html app='chrome.exe' title='Microsoft Dynamics GP' />
<webctrl aaname='Add' idx='1'
    parentid='a00000000000000008549000000030009000000000001000000000000' tag='DIV' />

此信息和堆栈跟踪或任何其他信息对于快速找到问题的根源并没有真正的帮助。我查看了 UIPath 文档和论坛,只找到了 this question,这似乎指向使用 exception.Source 来显示发生错误的活动的名称。 exception.Source 仅返回“UiPath.Core.Activities”而不是以下示例中的“Type into Copy Job# 'INPUT'”:

这显然会导致异常处理的大问题。如何轻松返回每个异常的源代码?

【问题讨论】:

    标签: automation uipath


    【解决方案1】:

    当您的选择器失败时,您将得到一个UiPath.Core.SelectorNotFoundException 类型的新对象。但是,在 UiPath 团队决定将 Display Name 添加到内部异常之前,在这种特殊情况下您几乎无能为力。

    以下面的例子为例——第一行显示了内部异常,第二行红色的本质上只是被重新抛出的异常。请注意,只有后一个包含Display Name 属性。

    Source 本身通常是UiPath.Core.Activities 类型,但由于这只是类型的名称,我们没有任何指向错误对象的链接。您可以执行以下操作:

    1. 为您的异常添加一些细节。您不想对每个活动都执行此操作,但您可以有某些 try-catch 块(例如:登录系统由三个单独的活动组成,它们位于一个块中)。
    2. 重新抛出异常。这样,显示名称最终会出现在执行日志文件中。

    【讨论】:

    • 好的,这是一个很好的技巧。这有助于至少能够查看日志以准确找到错误发生的位置,因为我已经在重新抛出错误。如果 UIPath 提供了这个错误详细信息,这样我就可以轻松地通过电子邮件向自己发送所有内容,那就太好了。无论哪种方式,这都适用于寻找问题的替代方法。谢谢。
    • @MUlferts - 提交一个想法! - forum.uipath.com/c/user-voice/ideas
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2011-06-27
    • 2023-03-22
    • 2021-08-19
    • 2013-09-09
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多