On Error Statement
Enables or disables error-handling.
On Error Resume Next On Error GoTo 0
Remarks
If you don't use an On Error Resume Next statement anywhere in your
code, any run-time error that
occurs can cause an error message to be displayed and code execution stopped.
However, the exact behavior is determined by the host running the code. The host
can sometimes opt to handle such errors differently. In some cases, the script
debugger may be invoked at the point of the error. In still other cases, there
may be no apparent indication that any error occurred because the host does not
to notify the user. Again, this is purely a function of how the host handles any
errors that occur.
Within any particular procedure, an error is not necessarily fatal as long as
error-handling is enabled somewhere along the call stack. If local
error-handling is not enabled in a procedure and an error occurs, control is
passed back through the call stack until a procedure with error-handling enabled
is found and the error is handled at that point. If no procedure in the call
stack is found to have error-handling enabled, an error message is displayed at
that point and execution stops or the host handles the error as appropriate.
On Error Resume Next causes execution to continue with the statement
immediately following the statement that caused the run-time error, or with the
statement immediately following the most recent call out of the procedure
containing the On Error Resume Next statement. This allows execution to
continue despite a run-time error. You can then build the error-handling routine
inline within the procedure.
An On Error Resume Next statement becomes inactive when another
procedure is called, so you should execute an On Error Resume Next
statement in each called routine if you want inline error handling within that
routine. When a procedure is exited, the error-handling capability reverts to
whatever error-handling was in place before entering the exited procedure.
Use On Error GoTo 0 to disable error handling if you have previously
enabled it using On Error Resume Next.
The following example illustrates use of the On Error Resume Next
statement. On Error Resume Next
Err.Raise 6 ' Raise an overflow error.
MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
Err.Clear ' Clear the error.
|