On Error-Anweisung

DIAdem 2018 Hilfe


Ausgabe: Juni 2018
Artikelnummer: 370858P-0113
Angaben zum Produkt anzeigen

DOWNLOAD (Nur Windows)


DIAdem 2012 Hilfe
DIAdem 2014 Hilfe
DIAdem 2015 Hilfe
DIAdem 2017 Hilfe
DIAdem 2018 Hilfe
DIAdem 2019 Hilfe

Laufzeit-Fehler treten bei der Ausführung einer ungültigen Anweisung auf, also beispielsweise bei einer Division durch Null oder beim Zugriff auf eine nicht existierende Datei. Wie Sie auf einen im Script auftretenden Laufzeitfehler reagieren, hängt von der Art des Fehlers, von dessen Ursache und von den sich daraus ergebenden Konsequenzen ab. In manchen Fällen genügen die Ausgabe einer entsprechenden Fehlermeldung und der Abbruch der Ausführung.

Zu den einfachen Reaktionsmöglichkeiten zählt das Ignorieren des Fehlers mittels der On Error Resume Next-Anweisung. Beim Auftreten eines Fehlers – On Error – wird durch Ausführen von Resume Next der Fehler übersprungen. Das heißt, die Ausführung setzt mit der Anweisung fort, die unmittelbar auf die Anweisung folgt, die den Laufzeitfehler verursacht hat.

Die On Error-Anweisung gilt nicht global, sondern nur für die Prozedur in der diese Anweisung steht.

Die On Error Resume Next-Anweisung muss deshalb, wie das nächste Beispiel zeigt, immer vor der Zeile stehen, die eine Fehlermeldung verursachen kann:

Dim rVal
On Error Resume Next
rVal = 12/0
Call MsgBox(rVal)

In diesem Fall wird der auftretende Fehler ignoriert und die nachfolgende Anweisung abgearbeitet. Es erscheint eine leere Meldungsbox.

Wenn Sie Fehler ignorieren und in einer If-Anweisung ein Fehler auftritt, führt DIAdem die Anweisung aus, die hinter dem Then folgt. Wenn in einer For Anweisung ein Fehler auftritt, führt DIAdem die Anweisungen in der For-Next Schleife einmal aus.

Haben Sie die Fehlerbehandlung mit On Error Resume Next aktiviert, so verwenden Sie die On Error Goto 0-Anweisung zum Beenden der Fehlerbehandlung:

Dim rVal
On Error Resume Next
rVal = 12/0
If (Err.Number <> 0) Then
  Call MsgBox(Err.Description)
  Call MsgBox(Err.Number)
  Call MsgBox(Err.Source)
End If
On Error Goto 0

Da sich Fehler auch an anderen Stellen auswirken können, empfiehlt sich das Ignorieren eines Fehlers nicht. Besser ist es, wenn Sie mögliche Fehlerursachen geeignet abfangen und behandeln.

Zur Fehlerbehandlung steht Ihnen das Err-Objekt zur Verfügung, ein integriertes Objekt mit globalem Gültigkeitsbereich. Das Err-Objekt enthält Informationen zu dem zuletzt aufgetretenen Fehler. Es umfaßt die Methoden Raise und Clear, mit denen Sie einen Laufzeitfehler auslösen und löschen können. Zu den Objekt-Eigenschaften gehören unter anderem Number, Description und Source, denen Sie die Nummer, die Beschreibung und den Verursacher des Fehlers entnehmen.

Verwandte Themen

On Error | Err

WAR DIESER ARTIKEL HILFREICH?

Nicht hilfreich