Anweisung zur Definition und zum Annullieren eines Fehlerbehandlers.
Syntax: a)
ON ERROR [
LOCAL]
Anweisungen
b)
ON ERROR OFF
Benutzung: a) Die ON ERROR Anweisung führt den Fehlerbehandler ein. Wenn ein Fehler nach der Ausführung eines ON ERROR auftritt, geht die Kontrolle an die erste Anweisung der ON ERROR Zeile über, und das Programm läuft von dort weiter. Beachten Sie, daß der gesamte Fehlerbehandler-Code sich auf der ON ERROR Zeile befinden muß, so daß komplexe Fehlerbehandler auf Prozeduren angewiesen sind, z.B.:
10 ON ERROR PROCerr_handler
In der Regel vergißt BASIC vor Aufruf des Fehlerbehandlers alle aktiven Prozeduren, Funktionen und Schleifen und schaltet auf die 'oberste Programmebene' zurück. Wird jedoch das Schlüsselwort LOCAL auf der ON ERROR Zeile verwendet, dann wird bei Auftreten des Fehlers wieder die Verschachtelungsebene betreten, die zur Zeit der Ausführung von ON ERROR aktuell war. Dies gestattet das Schreiben von Fehlerbehandlern, die innerhalb von Schleifen und anderen Konstruktionen nützlich sind.
Siehe auch LOCAL ERROR und RESTORE ERROR.
b) ON ERROR OFF annulliert den aktiven Fehlerbehandler, so daß bei Auftreten eines Fehlers diese Standardaktion in Gang gesetzt wird:
100 TRACE OFF
110 IF QUIT THEN
120 ERROR EXT ERR, REPORT$
130 ELSE
140 RESTORE
150 (HIMEM-4)=@%
160 @%=8900
170 REPORT
180 IF ERL PRINT " at line " ERL ELSE PRINT
190 @%=!(HIMEM-4)
200 END
210 ENDIF
Bei Generierung von fatalen Fehlern (ERR=0) wird eine automatische ON ERROR OFF Anweisung durchgeführt.
Beispiele: ON ERROR IF ERR=17 STOP : REM trap just Escape
ON ERROR LOCAL PRINT "Unzulässige Arg" : ENDPROC