【问题标题】:Error Handling in UFT/QTPUFT/QTP 中的错误处理
【发布时间】:2017-06-23 12:41:51
【问题描述】:

我有一个框架,其中在函数库的操作中调用方法。我正在尝试进行错误处理以避免函数库中编写的代码引发的错误。

以下是我的操作代码:

on error resume next
call TestMe()
if err.number Then: msgbox err.description
on error goto 0

这是函数库中的函数:

Function TestMe()
   x = 1/0
End Function

当我执行我的测试时,on error resume next 似乎没有工作,因为我在函数 TestMe() 中收到一个除以零的错误弹出窗口。

如何在不移动代码的情况下处理这些错误?

【问题讨论】:

  • 您为什么不会弹出错误消息?这就是你编码的方式。您从通话中返回并说“如果我有错误,请显示一条消息”。
  • 这个语句很好用!仔细检查您的代码!
  • @BrianMStafford -> 函数 TestMe() 内抛出错误消息
  • @GTAVLover 代码类似,只是函数库抛出的错误没有被Action内的on error resume next处理。
  • @yudi2312 然后在函数里面也加入这个语句! :-)

标签: vbscript qtp hp-uft


【解决方案1】:

令人惊讶的是,一直使用 QTP/UFT 的人从未遇到过这种情况。也很有趣。 我发现(或者乍看之下)on error resume next 的范围仅限于它的级别(库/操作),并且不能转移到任何一个。

您可能想尝试以下方法:

操作代码:

Call Test3()

函数库:

Function Test1()
      x = 1/0
End Function

Function Test2()
   Call Test1()
   MsgBox "Test2"
End Function

Function Test3()
   On Error Resume next
   Call Test2()
   MsgBox err.Description
End Function

使用此语句继续执行,直到找到处理程序。所以你可以设置一个你认为合适的条件。

另一种选择是使用标志(可能是环境变量),例如

Environment("Flag") = True

动作代码中可以直接检查谁的条件

希望这会有所帮助。我仍然会尝试更多地了解这个

【讨论】:

  • 我正在考虑创建一个方法来执行其他方法,以确保所有错误都得到挽救。而且我不清楚使用标志的替代方法。你能对此再多解释一下吗?
  • 我不知道你的代码是怎样的,所以很难提出建议。但如果您的目标是不多次使用 on error 语句,那么您可以使用上述答案。请注意,它只能在一个级别上工作,即库文件 - 在上面的示例中,您也可以在 Test1() 中使用错误语句并在 Test3() 中处理它。
  • 标志只不过是一个环境变量。您可以将环境变量设置为 true(当您想要开始执行时),当某些条件失败时(可以在库或操作中)您可以将环境变量设置为 False,现在您需要在每个函数下添加一个条件您正在调用以检查标志(因此只有在标志为 True 时才会调用每个函数)这样,如果任何一个函数失败,您就会摆脱它。这个解释只是初级的,你需要根据你的需要编写脚本。
【解决方案2】:

查看以下文章。这是在详细解释相同的问题

https://sumeetkushwah.com/2014/08/12/implementing-try-catch-functionality-in-qtpuft/

【讨论】:

    【解决方案3】:
    on error resume next
    
    call TestMe()
    
    on error goto 0
    
    if err.number Then: msgbox err.description
    
    Function TestMe()
    
       x = 1/0
    
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多