====== Error Handling ======
===== Defining an error handling routine =====
Starting from XC=BASIC version 3, certain runtime errors are trappable using the ''ON ERROR GOTO'' statement. You can specify a custom error handling routine that makes it possible to recover from errors when needed. The following example demonstrates this functionality:
ON ERROR GOTO errhandler
DIM d$ AS STRING * 6
start:
INPUT "enter divisor "; d$
PRINT "10/"; d$; "="; 10.0 / VAL(d$)
END
errhandler:
IF ERR() = 20 THEN
PRINT "division by zero error"
GOTO start
END IF
===== Getting the error code =====
When an error occurs, the ''ERR()'' function returns the error code, a number between 0 and 255. The following are built-in errors in XC=BASIC:
^ Code ^ Error message ^
|1 |TOO MANY FILES |
|2 |FILE OPEN |
|3 |FILE NOT OPEN |
|4 |FILE NOT FOUND |
|5 |DEVICE NOT PRESENT |
|6 |NOT INPUT FILE |
|7 |NOT OUTPUT FILE |
|8 |MISSING FILENAME|
|9 |ILLEGAL DEVICE NUMBER |
|10 |DEVICE NOT READY |
|11 |OTHER READ ERROR |
|14 |ILLEGAL QUANTITY |
|15 |OVERFLOW |
|20 |DIVISION BY ZERO |
|21 |ILLEGAL DIRECT |
===== User-defined errors =====
Apart from the built-in errors, you can define your own error codes, too. You can use the ''ERROR'' command to trigger any error, built-in or custom.
ON ERROR GOTO errhandler
ERROR 99
END
errhandler:
IF ERR() = 99 THEN PRINT "my custom error occured" ELSE PRINT "other error"