Mit den Befehlen ON ERROR RESUME NEXT, ON ERROR GOTO, ON ERROR GOSUB und ON ERROR STOP kann eine Fehlerbehandlung im Code ausgeführt werden.
Mit folgendem Code wird eine einfache Fehlerbehandlung ausgelöst. Die Fehlerbehandlung findet im Code nach dem Label Sprungmarke statt. Über den Befehl On Error Gosub Sprungmarke wird die Fehlerbehandlungsroutine gekennzeichnet. Wird ein Fehler ausgelöst (hier durch die Teilung durch 0), wird der Code nach dem Label Sprungmarke ausgeführt und nach der Behandlung hinter der den Fehler auslösenden Codezeile fortgeführt.
Function TuWas(ByVal Parameter1 As Long) As Long
On Error Gosub Sprungmarke
Parameter1 = Parameter1 / 0
Exit Function Parameter1
Label Sprungmarke
MsgBox(Err.Description)
End Gosub
End Function
Alternativ kann eine Fehlerbehandlung auch mit dem Befehl ON ERROR GOTO durchgeführt werden:
Function TuWas(ByVal Parameter1 As Long) As Long
On Error Goto Sprungmarke
Parameter1 = Parameter1 / 0
Exit Function Parameter1
Label Sprungmarke
MsgBox(Err.Description)
End Function
Daneben steht auch der Befehl ON ERROR RESUME NEXT zur Verfügung, der Fehler verursachende Codezeilen überspringt. Für die Fehlerüberprüfung steht das Err-Objekt zur Verfügung, das den Fehlercode des letzten aufgetretenen Fehlers zur Verfügung stellt.
Function TuWas(ByVal Parameter1 As Long) As Long
On Error Resume Next
Parameter1 = Parameter1 / 0
End Function
Der Befehl ON ERROR STOP schaltet die Fehlerbehandlung wieder aus.
Function TuWas(ByVal Parameter1 As Long) As Long
On Error Resume Next
Parameter1 = Parameter1 / 0
On Error Stop
End Function
Zu beachten ist, dass sich die Fehlerbehandlung auch auf Funktionsaufrufe auswirkt. Tritt z.B. nach einer eingeschalteten Fehlerbehandlung mit ON ERROR RESUME NEXT ein Fehler in einer aufgerufenen Funktion auf, wird mit dem Befehl unmittelbar nach dem Funktionsaufruf in der fehlerbehandelnden Funktion fortgesetzt.
Diese Fehlerbehandlungsketten werden bei Aufrufen von Events neu begonnen. Daher ist gegebenenfalls ein Befehl zur Behandlung von Fehlern zu Beginn eines Events erforderlich.