When an error happens, you can use the ERROR operation to figure out what went wrong. ERROR outputs a list whose items describe the error. The first item is a numeric code for the type of error that occurred. The second item is a human-readable message that explains the error.
Some messages may have two different codes depending on whether the error is recoverable (that is, if a substitute value can be provided through the ERRACT mechanism).
Some messages are warnings rather than errors; these can not be caught.
The conditions which generate error code 0 and error code 34 so bad that Logo exits immediately. These also cannot be caught.
The numeric error codes and their corresponding human-readable messages are given in the table below.
Error Code | Error Message |
---|---|
0 | Fatal internal error (can't be caught) |
1 | Out of memory |
2 | Stack Overflow |
3 | Turtle out of bounds |
4 | PROC doesn't like DATUM as input (not recoverable) |
5 | PROC didn't output to PROC |
6 | Not enough inputs to PROC |
7 | PROC doesn't like DATUM as input (recoverable) |
8 | Too much inside ( )'s |
9 | I don't know what to do with DATUM |
10 | ')' not found |
11 | VAR has no value |
12 | Unexpected ')' |
13 | I don't know how to PROC (recoverable) |
14 | Can't find catch tag for THROWTAG |
15 | PROC is already defined |
16 | Stopped |
17 | Already dribbling |
18 | File system error |
19 | Assuming you mean IFELSE, not IF (warning only) |
20 | VAR shadowed by local in procedure call (warning only) |
21 | User-initiated THROW "Error |
22 | PROC is a primitive |
23 | Can't use TO inside a procedure |
24 | I don't know how to PROC (not recoverable) |
25 | IFTRUE/IFFALSE without TEST |
26 | Unexpected ']' |
27 | Unexpected '}' |
28 | Couldn't initialize graphics |
29 | Macro returned VALUE instead of a list |
30 | I don't know what to do with VALUE |
31 | Can only use STOP or OUTPUT inside a procedure |
32 | APPLY doesn't like DATUM as input. |
33 | END inside multi-line instruction |
34 | Out of memory (can't be caught) |
1001 | WINDOW already exists |
1002 | WINDOW does not exist |
1101 | DLL load failed |
1102 | DLL is not loaded |
1103 | Not all Type/Data inputs are paired |
1104 | Invalid data type input |
1105 | Invalid output type |
1106 | Function not found |
1201 | Problem Reading GIF, check memory and diskspace |
1202 | Problem Generating GIF, check memory and diskspace |
1211 | Could not open .bmp |
1212 | Unable to create Windows 3.0 bitmap |
1213 | Could not write .bmp |
1214 | Not a Windows 3.0 bitmap |
1300 | MIDI Error |
1301 | MIDI Error: Already open |
1302 | MIDI Error: Invalid MIDI device |
1303 | MIDI Error: Not open |
1401 | Timer not found |
1500 | Invalid state for instruction |
1600 | MCI Error: MESSAGE |
1700 | Network Error: MESSAGE |
1701 | netstartup has already been run |
1702 | The network subsystem has not been started |
1703 | netconnecton has already been run |
1704 | netaccepton has already been run |
1801 | Could not open port |
1802 | Could not flush port |
1803 | Could not build dcb on port |
1804 | Could not set port |
1805 | Port is already open |
1806 | Port is not open |
1901 | Cut failed, possibly not enough memory |
1902 | Nothing to paste |
1903 | BitMap Index out of range |
1904 | BitMap at Index must be initialized with a bitmap |
2001 | PROC cannot be run on PROC because it has a special form |