Referenz - 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.
- Das Label muss sich auf Modulebene befinden, darf sich also nicht in einer SUB oder FUNCTION befinden; ansonsten muss zusätzlich das Schlüsselwort LOCAL verwendet werden.
- Wird das optionale Schlüsselwort LOCAL verwendet, gilt die Fehlerbehandlung nur für die aktuelle Prozedur. In diesem Fall sucht FreeBASIC nach dem Label innerhalb der aktuellen Prozedur.
- Wird 0 als Label angegeben, werden aktivierte Fehlerbehandlungsroutinen ignoriert; wenn ein Fehler auftritt, führt FreeBASIC keinen Sprung aus.
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
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|