2016-10-13 09:32:34 -04:00
|
|
|
# test that emergency exceptions work
|
|
|
|
|
|
|
|
import micropython
|
2022-08-18 02:57:45 -04:00
|
|
|
import sys
|
2020-03-22 22:26:08 -04:00
|
|
|
|
2017-09-21 01:24:57 -04:00
|
|
|
try:
|
2022-08-18 02:57:45 -04:00
|
|
|
import io
|
2017-09-21 01:24:57 -04:00
|
|
|
except ImportError:
|
|
|
|
print("SKIP")
|
|
|
|
raise SystemExit
|
2016-10-13 09:32:34 -04:00
|
|
|
|
|
|
|
# some ports need to allocate heap for the emg exc
|
|
|
|
try:
|
|
|
|
micropython.alloc_emergency_exception_buf(256)
|
|
|
|
except AttributeError:
|
|
|
|
pass
|
|
|
|
|
2020-03-22 22:26:08 -04:00
|
|
|
|
2016-10-13 09:32:34 -04:00
|
|
|
def f():
|
|
|
|
micropython.heap_lock()
|
|
|
|
try:
|
|
|
|
raise ValueError(1)
|
|
|
|
except ValueError as er:
|
2017-09-21 01:24:57 -04:00
|
|
|
exc = er
|
2016-10-13 09:32:34 -04:00
|
|
|
micropython.heap_unlock()
|
|
|
|
|
2017-09-21 01:24:57 -04:00
|
|
|
# print the exception
|
2022-08-18 02:57:45 -04:00
|
|
|
buf = io.StringIO()
|
|
|
|
sys.print_exception(exc, buf)
|
2017-09-21 01:24:57 -04:00
|
|
|
for l in buf.getvalue().split("\n"):
|
|
|
|
if l.startswith(" File "):
|
|
|
|
print(l.split('"')[2])
|
|
|
|
else:
|
|
|
|
print(l)
|
|
|
|
|
2020-03-22 22:26:08 -04:00
|
|
|
|
2016-10-13 09:32:34 -04:00
|
|
|
f()
|