UFT / QTP中的错误处理

时间:2017-06-23 12:41:52

标签: vbscript qtp hp-uft

我是一个框架,在函数库的一个动作中调用这些方法。我试图进行错误处理,以避免在函数库中编写的代码引发错误。

以下是我的行动代码:

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()内部得到一个零除错的弹出窗口。

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

3 个答案:

答案 0 :(得分:0)

令人惊讶的是,所有使用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

可以直接在动作代码中检查其条件

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

答案 1 :(得分:0)

检查以下文章。这是详细解释同样的问题

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

答案 2 :(得分:-1)

on error resume next

call TestMe()

on error goto 0

if err.number Then: msgbox err.description

Function TestMe()

   x = 1/0

End Function