用心做人,用心做事!

On Error Resume Next (On Error GoTo 0 )

上一篇 / 下一篇  2009-10-14 13:06:05 / 个人分类:QTP

On Error GoTo 0
表示禁止当前过程中任何已启动的错误处理程序。

On Error Resume Next
说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。

On Error GoTo line
启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误。

以上MSDN上的解释

一般情况下,如果在对我们创建的对象或控件进行错误捕捉,需要使用On Error Resume Next ,然后在判断它的Err.Number,根据错误类型来做相应的处理。
参考资料:MSDN

On Error Resume Next
On Error GoTo 0
说明
如果在您的代码中未使用 On Error Resume Next 语句, 所发生的运行时错误将显示错误信息,同时,代码的执行也随之终止。但是运行代码的主机决定了具体操作。主机有时可有选择地处理各类错误。在有些情况下,它可以在出错的地方激活脚本调试器。而在另一些情况下,由于主机无法通知用户,因此对所发生的错误没有明确说明。至于如何处理错误则完全取决于主机的功能。

在任意一个特殊过程中,只要在调用堆栈的地方启用错误处理程序,所发生的错误一般不会是致命性的。如果在一个过程中没有启用局部错误处理程序,当发生错误时,控制可通过堆栈调用转移,直到找到一个具有错误处理程序的过程,并在出错的地方处理错误。如果在调用堆栈的过程中没有找到错误处理程序,则在出错的地方显示错误信息,同时终止代码执行,或者通过主机来正确处理错误。

On Error Resume Next 会使程序按照产生错误的语句之后的语句继续执行,或是按照最近一次所调用的过程(该过程含有 On Error Resume Next 语句)中的语句继续运行。这个语句可以不顾运行时错误,继续执行程序,之后您可以在过程内部建立错误处理例程。在调用另一个过程时,On Error Resume Next 语句变为非活动的。所以,如果希望在例程中进行内部错误处理,则应在每一个调用的例程中执行 On Error Resume Next 语句。

当调用另一过程时,禁止使用On Error Resume Next 语句,因此如果您想在例程中嵌入错误处理程序,则需要在每次调用例程时都应执行 On Error Resume Next 语句。当退出一个过程时,错误处理程序可恢复到它在进入所退出过程之前的状态。

如果您已启用 On Error Resume Next 错误处理程序,则可使用 On Error GoTo 0禁用错误处理程序。

下面例子举例说明如何使用 On Error Resume Next 语句:

On Error Resume Next
Err.Raise 6 ' 引发溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear '清除该错误。  


TAG:

 

评分:0

我来说两句

Open Toolbar