Errorhandling - Nicht global
Mehrere Error Handles
In einer Prozedur kann jeweils immer nur ein Error-Handler aktiviert werden. Zudem gilt ein Error-Handler immer nur in einer Prozedur. Demzufolge gibt es keinen globalen Error-Handler, der über mehrere Prozeduren „wacht“. Um also jede Prozedur in einem Programm vor Fehlern zu schützen, muss in jeder Prozedur ein eigener Error-Handler implementiert werden.
Das nachfolgende Beispiel besitzt sog. Zeilennummern – ein Relikt, dass seit der ersten Basic Version existiert und bis zur aktuellsten VB/VBA-Version beibehalten wurde.
Sub DivideByZero() 1 On Error Resume Next 2 i = 8 / 0 'Diese Zeile wird nicht bewertet! 3 DivideByZeroAgain 7 End Sub Sub DivideByZeroAgain() 4 On Error Resume Next 5 i = 8 / 0 'Diese Zeile wird nicht bewertet! 6 End Sub
In beiden Prozeduren werden Fehler jeweils durch die Error-Handler abgefangen. Dieses Beispiel soll lediglich aufzeigen, in Gültigkeit der Error-Handler darstellen.