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:
@@ -54,4 +54,5 @@ this dialect has no variable name without a type suffix:
|
||||
|
||||
`ER#` carries this interpreter's error code, not a Commodore error number. There is no
|
||||
correspondence to reproduce — the errors raised here are not the errors a 1985 ROM
|
||||
raised — so print `ERR(ER#)` rather than the number.
|
||||
raised — so print `ERR(ER#)` rather than the number. **[Chapter 15](15-error-codes.md)
|
||||
lists every value it can hold.**
|
||||
|
||||
Reference in New Issue
Block a user