Public Sub TryIt()
On Error GoTo Error_Handler
A
Exit_Procedure:
On Error Resume Next
Exit Sub
Error_Handler:
Select Case Err.Number
Case vbObjectError
MsgBox Err.Description, vbOKOnly + vbExclamation
Case Else
MsgBox Err.Number & ", " & Err.Description
End Select
Resume Exit_Procedure
Resume
End Sub
Public Sub A()
On Error GoTo Error_Handler
B
Exit_Procedure:
On Error Resume Next
Exit Sub
Error_Handler:
Select Case Err.Number
Case vbObjectError
Err.Raise vbObjectError, "MyClass", "In Procedure A:" & vbNewLine & Err.Description, Err.HelpFile, Err.HelpContext
Case Else
MsgBox Err.Number & ", " & Err.Description
End Select
Resume Exit_Procedure
Resume
End Sub
Public Sub B()
On Error GoTo Error_Handler
C
Exit_Procedure:
On Error Resume Next
Exit Sub
Error_Handler:
Select Case Err.Number
Case vbObjectError
Err.Raise vbObjectError, "MyClass", "In Procedure B:" & vbNewLine & Err.Description, Err.HelpFile, Err.HelpContext
Case Else
MsgBox Err.Number & ", " & Err.Description
End Select
Resume Exit_Procedure
Resume
End Sub
Public Sub C()
On Error GoTo Error_Handler
Debug.Print 1 / 0
Exit_Procedure:
On Error Resume Next
Exit Sub
Error_Handler:
Select Case Err.Number
Case Else
Err.Raise vbObjectError, "MyClass", "In Procedure C:" & vbNewLine & Err.Number & ": " & Err.Description, Err.HelpFile, Err.HelpContext
End Select
Resume Exit_Procedure
Resume
End Sub