在VB6中,您可以指定您希望稍后在例程中由特定代码处理错误:
Sub Bar() On Error Goto MyHandler ... ...some code that throws an error... ... Exit Sub MyHandler: ...some error handler code (maybe pops up a dialog) End Sub
但是,可能是这样的情况,抛出错误的代码是本地化的,并且您不希望对例程中的所有其余代码使用相同的处理程序。在这种情况下,您将使用“On Error Goto 0”,如下所示:
Sub Bar() ... On Error Goto MyHandler ...some code that throws an error... On Error Goto 0 ... ... Exit Sub MyHandler: ...some error handler code (maybe pops up a dialog) End Sub
现在,只有在特定代码行失败时,您才能有效地确定错误处理的范围。
通过调用“On Error Goto 0”,您并不是说您希望应用程序立即崩溃。您只是说要取消注册您可能在例程中先前设置的任何错误处理程序;错误将在调用堆栈中传递给调用例程,就像正常情况一样。