我有一个框架,其中的方法是在来自函数库的操作中调用的。我正在尝试做错误处理,以避免在函数库中编写的代码抛出错误。
下面是我的操作代码:
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()中得到了一个被零除的错误弹出窗口。
如何在不移动代码的情况下处理这些错误?
发布于 2017-07-05 17:09:51
令人惊讶的是,由于一直在使用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其条件可以直接在动作代码中检查
希望这能有所帮助。我还是会努力挖掘出更多关于这方面的信息
发布于 2017-07-20 00:18:47
请查看下面的文章。这详细解释了同样的问题。
https://sumeetkushwah.com/2014/08/12/implementing-try-catch-functionality-in-qtpuft/
发布于 2018-09-07 13:28:14
on error resume next
call TestMe()
on error goto 0
if err.number Then: msgbox err.description
Function TestMe()
x = 1/0
End Functionhttps://stackoverflow.com/questions/44721741
复制相似问题