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"