ON ERROR

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » O » ON ERROR

Syntax: ON [LOCAL] ERROR GOTO { label | 0 }
Typ: Anweisung
Kategorie: Fehlerbehandlung

ON ERROR bewirkt einen Programmsprung an ein angegebenes Label, sobald ein Fehler auftritt. Um ON ERROR in Ihrem Programm verwenden zu können, müssen Sie den Compiler mit der Kommandozeilenoption -e, -ex oder -exx aufrufen. Anderenfalls wird kein Sprung ausgeführt, der Befehl verbraucht aber dennoch Prozessorzeit.

Beispiel 1:

ON ERROR GOTO errorhandler  ' legt fest, zu welchem Label verzweigt werden soll.
ERROR 24                    ' Fehler 24 simulieren
PRINT "Diese Zeile wird nicht angezeigt."

errorhandler:
PRINT "Fehler #" & ERR & " ist aufgetreten!"   'Fehlernummer anzeigen
PRINT "Beliebige Taste zum Beenden"
SLEEP
END


Beispiel 2: Fehlerroutine in einer SUB

ON ERROR GOTO errorhandler             ' globale Fehlerroutine setzen

SUB Test
  ON LOCAL ERROR GOTO suberrorhandler  ' Fehlerroutine lokal ersetzen
  ERROR 24

  suberrorhandler:
  PRINT "In der SUB 'Test' ist der Fehler #" & ERR & " aufgetreten!"
  PRINT "Beliebige Taste zum Beenden"
  SLEEP
  END
END SUB

Test
END

errorhandler:
' Diese Fehlerroutine kommt nicht zum Einsatz
PRINT "Fehler #" & ERR & " ist aufgetreten!"   'Fehlernummer anzeigen
PRINT "Beliebige Taste zum Beenden"
SLEEP
END



Unterschiede zu QB:
In QB existiert das Schlüsselwort LOCAL nicht. Das Label muss sich auf Modulebene befinden.

Siehe auch:
RESUME, ERROR (Anweisung), ERR (Funktion), __FB_ERR__, Der Compiler, Fehler-Behandlung in FreeBASIC, Übersicht: Fehlerbehandlung, Debugging