Name

Err.Clear Method

Class

Microsoft.VisualBasic.ErrObject

Syntax

Err.Clear(  )

Description

Explicitly resets all the properties of the Err object after an error has been handled

Rules at a Glance

You only need to clear the Err object if you need to reference its properties for another error within the same subroutine, or before another On Error statement within the same subroutine.

Example

On Error Resume Next
   
i = oObjectOne.MyFunction(iVar)
    
If Err.Number <> 0 Then
   MsgBox ("The Error : " & Err.Description & vbCrLf _
          & " was generated in " & Err.Source)
   Err.Clear
End If
    
j = oObjectTwo.YourFunction(iVar)
   
If Err.Number <> 0 Then
   MsgBox ("The Error : " & Err.Description & vbCrLf _
          & " was generated in " & Err.Source)
   Err.Clear
End If

Programming Tips and Gotchas

  • Resetting the Err object explicitly using the Clear method is necessary in situations where you are using On Error Resume Next and are testing the value of Err.Number repeatedly. Unless you reset the Err object, you run the very real risk of catching the previously handled error, the details of which are still lurking in the Err object’s properties.

  • The Err object is automatically reset when either a Resume, Exit Sub, Exit Function, Exit Property, or On Error statement is executed.

  • You can achieve the same results by setting the Err.Number property to 0; however, your code will be more readable if you use the Clear method.

  • VB also supports structured error-handling through the Try...Catch...Finally statement.

  • Internally, in VB .NET ...

Get VB .NET Language in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.