我有一个框架,在函数库的一个动作中调用这些方法。我正在尝试进行错误处理,以避免函数库中编写的代码引发的错误。
以下是我的行动代码:
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()内部得到一个错误的弹出窗口。
如何在不移动代码的情况下处理这些错误?
令人惊讶的是,所有使用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 resume next
call TestMe()
on error goto 0
if err.number Then: msgbox err.description
Function TestMe()
x = 1/0
End Function