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 |