Error-Objekt - Bereinigung
Bereinigen des Error-Objekts
Wenn ein Fehler auftritt, behält das Fehlerobjekt solange die Fehlerdaten, bis das Fehlerobjekt bereinigt wird.
Sub DivideByZero() Dim i As Integer On Error Resume Next i = 8 / 0 If Err.Number <> 0 Then MsgBox "Es trat ein Fehler auf!" End If i = 8 / 4 If Err.Number <> 0 Then MsgBox "Es trat ein Fehler auf!" End If End Sub
In diesem Beispiel wird zweimal ein Fehlerhinweis angezeigt, obwohl nur die erste Division zu einem Fehler führt!
Das Fehlerobjekt sollte demnach sofort nach dem Fehler-Handling bereinigt werden; hierzu stellt und das Error.Objekt die Clear-Methode zur Verfügung:
Sub DivideByZero() Dim i As Integer On Error Resume Next i = 8 / 0 If Err.Number <> 0 Then MsgBox "Es trat ein Fehler auf!" End If Err.Clear i = 8 / 4 If Err.Number <> 0 Then MsgBox "Es trat ein Fehler auf!" End If Err.Clear End Sub
Das Error-Objekt wird ebenfalls nach jeder Resume-Anweisung initialisiert.