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.