* Start adding new codes * few tiny edits * Add more errors and rearrange * Update docs/device/error-codes.md Co-Authored-By: Michał Moskal <michal@moskal.me> * juggle category * set error range in hint Co-Authored-By: Michał Moskal <michal@moskal.me> * Update docs/device/error-codes.md Co-Authored-By: Mark <mark@microbit.org>
3.9 KiB
Error codes
Your @boardname@ may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your @boardname@ screen (see picture) followed by an error number. These are called panic codes.
basic.forever(function() {
basic.showLeds(`
# . . . #
# # . # #
. . . . .
. # # # .
# . . . #
`)
basic.pause(1000)
basic.clearScreen()
basic.showString("020")
})
Board system errors
The @boardname@ system errors range between 01 - 99. For a full list of these codes, what they mean and what you can do to resolve them, visit the micro:bit guide to error codes.
- 10 (
MICROBIT_I2C_LOCKUP
): the @boardname@'s I2C bus is not working - 20 (
MICROBIT_OOM
): there is no free memory on the @boardname@ - 30 (
MICROBIT_HEAP_ERROR
): a problem in the heap space - 40 (
MICROBIT_NULL_DEREFERENCE
): there was a NULL dereference, the @boardname@ tried to manage a invalid object pointer - 42 (
MICROBIT_SYSTEM_ERROR
): there's an error condition in the @boardname@ system software - 43 (
MICROBIT_NO_RADIO
): the @boardname@ can't enable the radio - 50 (
MICROBIT_HARDWARE_UNAVAILABLE_ACC
): an error occurred with the micro:bit's accelerometer component - 51 (
MICROBIT_HARDWARE_UNAVAILABLE_MAG
): an error occurred with the micro:bit's magnetometer component - 90 (
MICROBIT_HARDWARE_CONFIGURATION_ERROR
): actual board hardware doesn't match the configuration description - 98 (
MICROBIT_ASSERTION_FAILED
): assertion failed, the condition in an assert was false
Memory errors
Memory error codes range from 800 - 909.
~alert
Report errors!
If you ever see an error within the range of 800 - 909, please report an issue at GitHub or on the support page.
~
Garbage collector errors
Error codes generated from the garbage collector.
- 840: Allocation pointer is null or invalid
- 841: Garbage collection work queue error
- 843: VTable entry is not free
- 844: GC allocation failed for requested number of bytes
- 846: Invalid allocation thread
- 848: Allocation pointer beyond allocation header
- 849: Allocation pointer is null
Program access errors
- 901 (
PANIC_INVALID_BINARY_HEADER
): the type header for the object is not valid - 902 (
PANIC_OUT_OF_BOUNDS
): the object data portion is greater than the length defined for it - 903 (
PANIC_REF_DELETED
): an object reference was deleted and the object is no longer valid - 904 (
PANIC_SIZE
): the object size doesn't match the size defined for the type - 905 (
PANIC_INVALID_VTABLE
): an object vtable is invalid or not initialized - 906 (
PANIC_INTERNAL_ERROR
): an internal resource error - 907 (
PANIC_NO_SUCH_CONFIG
): the specified device resource is not present - 909 (
PANIC_INVALID_ARGUMENT
): the argument value is out of range or the type or format is invalid
JavaScript runtime codes
Invalid cast codes
When the static type of x
is a class C
, the dynamic type of x
isn’t C
, and you try to access a field on x
or call a method on x
, you will get one of the following codes, depending on dynamic type of x
.
- 980 (
PANIC_CAST_FROM_UNDEFINED
): when value ofx
isundefined
- 981 (
PANIC_CAST_FROM_BOOLEAN
): when value ofx
istrue
orfalse
- 982 (
PANIC_CAST_FROM_NUMBER
): whenx
is anumber
- 983 (
PANIC_CAST_FROM_STRING
): whenx
is astring
- 984 (
PANIC_CAST_FROM_OBJECT
): whenx
is object of some type - 985 (
PANIC_CAST_FROM_FUNCTION
): whenx
is a function - 989 (
PANIC_CAST_FROM_NULL
): whenx
isnull