我是一个框架,在函数库的一个动作中调用这些方法。我试图进行错误处理,以避免在函数库中编写的代码引发错误。
以下是我的行动代码:
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()内部得到一个零除错的弹出窗口。
如何在不移动代码的情况下处理这些错误?
答案 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