Table of Contents
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"