UFT / QTP中的错误处理

问题描述 投票:0回答:3

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

以下是我的行动代码:

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

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

vbscript qtp hp-uft
3个回答
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

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

希望这可以帮助。我仍然会尝试更多地了解这一点


0
投票

请查看以下文章。这详细解释了同样的问题

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


-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
© www.soinside.com 2019 - 2024. All rights reserved.