← index #1700PR #379
Related · high · value 0.197
QUERY · ISSUE

Custom exception cannot be re-raised from called function

openby mbueschopened 2015-12-09updated 2026-03-18
docs

Consider this code:

class MyEx(Exception): pass

def do_raise():
        raise

try:
        raise MyEx()
except MyEx:
        try:
                do_raise()
        except MyEx:
                print("Ok")
        else:
                print("not Ok")

On MicroPython it fails with

Traceback (most recent call last):
  File "/home/mb/test.py", line 12, in <module>
  File "/home/mb/test.py", line 10, in <module>
  File "/home/mb/test.py", line 4, in do_raise
RuntimeError: No active exception to reraise

Things I noticed:
If the raise is done directly in the handler instead of do_raise, it works correctly (prints Ok).
If the exception is Exception instead of MyEx, it also works correctly.

CANDIDATE · PULL REQUEST

vm: Implement raise statement w/o args (reraising last exception).

mergedby pfalconopened 2014-03-26updated 2014-07-10

(no description)

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied