如果在过程中激活了错误捕获,则当过程完成执行时,错误捕获会自动无效。但是,当过程中的代码一直在执行时,可能会想要关闭过程中的错误捕获。为了关闭激活的错误捕获,可用 On Error GoTo 0 语句。一旦 Visual Basic 执行了该语句,则在过程内检测错误而不捕获错误。在过程中到处都可用 On Error GoTo 0 关闭错误处理,甚至在错误处理例程自身内也是如此。
如下段所示,在整个过程中试着用 Step Into 单步调试:
Sub ErrDemoSub () On Error GoTo SubHandler '
激活错误捕获。'
需要捕获错误并在此修正错误。' Kill
函数用于删除文件。Kill "Oldfile.xyz"
On Error GoTo 0 '
在此关闭错误处理。Kill "Oldfile.xyz"
On Error GoTo SubHandler '
再次激活错误捕获。Kill "Oldfile.xyz"
Exit Sub
SubHandler: '
错误处理例程在此进行。MsgBox "Caught error."
Resume Next
End Sub
详细信息 为了学习如何使用 Step Into 的特点,请参阅本章后面的“运行应用程序的选定的部分”。
在调试代码时可能会发现,当代码产生错误而且错误处理程序捕获了这个错误时,代码将搅乱对自身特点的分析。虽然在项目的每一个模块中都可在 On Error 行外注释,但这也不胜其烦。
为此另辟蹊径,在调试时可以关闭错误处理程序,使得在每次有错误的时候都进入中断模式。
要在调试时禁止错误处理程序,请按照以下步骤执行:
当错误发生在项目中任何一个地方时,通过选择这个选项就会进入中断模式,而且,“代码”窗口将在出现错误的地方显示代码。
如果没有选择这一选项,错误可能会显示错误信息,也可能不这样,这要取决于错误发生在什么地方。例如,应用程序引用的外部对象就可能产生错误。如果它确实显示了信息,则该信息可能是无意义的,这与错误最初出现的地方有关。