应用于预防非可预知错误的发生,如果是可预知的,最好用if语句或其他方法。
首先要注意:设置Recovery 的触发条件是any error
由以下情况是不触发的
1)当这个对象不在对象库时,运行出错,不触发Recovery
2)当这个对象存在对象库时,修改运行脚本对象名,使它运行出错,不触发Recovery
错误处理优先级:
原则:
· 错误恢复场景中的错误处理优先级最高 (Recovery Operation)
· On Error Resume Next 优先级次之
· 错误恢复场景中的后处理方式优先级别再次之 (Post-Recovery Test Run Options)
· 缺省错误响应优先级别最低(On Error Goto 0)
请看如下代码:(前提条件,已经设置recovery scenario,触发条件是any error,处理方式是关闭机票定制程序进程,后处理方式是stop run test)
Dialog("Login").WinEdit("Agent Name:").Set "hhhh"
Dialog("Login").WinEdit("Agent Name:").Type micTab
Dialog("Login").WinEdit("Password:").SetSecure "48f410a62621aa81b7a8452472dac4d130ba9988"
Dialog("Login").WinEdit("Password:").Type micReturn
On error resume next
Dim i
Window("Flight Reservation").WinButton("FLIGHT").Click ‘winbutton为disable无法识别产生错误,On error resume next比错误场景的后处理方式优先级高,所以没有stop run test
Msgbox "1 " & Err.Number & " " & Err.Description
On Error Goto 0 '缺省错误处理
Msgbox "3 " & Err.Number & " " & Err.Description
i = 1/0 ‘缺省响应
Msgbox "2 " & Err.Number & " " & Err.Description
浙公网安备 33010602011771号