O'Reilly logo

VB & VBA in a Nutshell: The Language by Paul Lomax

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

6.2. Error Handling in Procedures

Even while building as robust an application as possible, errors inevitably occur, and your application is expected to handle them elegantly. In this section, we examine how to use VB and VBA's error-handling features to do just that, first by examining error handling in subroutines and functions within standard modules (i.e., code modules and form modules that make up a standard EXE or a standard VBA program), and then by examining error handling in code or class modules that are used in an ActiveX DLL, EXE, or OCX project. The reason for making this distinction will become clear as you read through these sections.

To begin, let's look at a couple of templates you can use to add error handling to your procedures:

Private Sub Command1_Click()

    On Error GoTo Command1_Err

    Exit Sub

Command1_Err:
    MsgBox Err.Number & vbCrLf & Err.Description, _
           vbCritical, "Error!"
    
End Sub

This is error handling at its simplest; when an error occurs, an error message is displayed, and the routine in which the error occurred terminates. The second template is a variation on the same theme, but this time the Resume statement resumes program execution at the Command1_Exit label:

Private Sub Command1_Click()

    On Error GoTo Command1_Err
    
    ...
    
Command1_Exit:
    Exit Sub

Command1_Err:
    MsgBox Err.Number & vbCrLf & Err.Description, _
           vbCritical, "Error!"
    Resume Command1_Exit
End Sub

Finally, here is a slightly more sophisticated error-handling device that automatically reexecutes ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required