Document every error code a script can see, as chapter 15
ER# held numbers nothing explained. The appendix lists the four error classes the interpreter prints, the eight codes it owns and what raises each, and the codes that reach ER# from errno, libakerror and libakgl underneath it. The table is not asserted. A program in the chapter trips seven of the eight and prints what it got, and docs_examples byte-compares the result -- so the numbers are checked rather than claimed. The eighth, 516, is not usefully trappable and the chapter says why: entering a handler takes a scope, and the pool being empty is what raised it. Two things worth a reader's attention came out of writing it. Two codes register the same ERR() text, so a program must compare the number and print the text. And VAL reports libakerror's Value Error rather than the interpreter's 517, which makes that number the platform's rather than ours -- filed as section 6 item 21, not fixed here, because deciding which libakstdlib failures to translate is a boundary question and ENOENT out of DOPEN is the counter-case. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -85,7 +85,7 @@ program text.
|
||||
|
||||
`ER` and `EL` are **`ER#` and `EL#`**, ordinary global variables. `ER#` holds this
|
||||
interpreter's error code, which bears no relation to a Commodore error number. Print
|
||||
`ERR(ER#)` for the text.
|
||||
`ERR(ER#)` for the text, and see [Chapter 15](15-error-codes.md) for the whole list.
|
||||
|
||||
## Graphics
|
||||
|
||||
|
||||
Reference in New Issue
Block a user