Pyrex exception reraise behavior
Miles <[email protected]> Sun, 13 Jul 2008 03:57:21 -0400
| Newsgroups | gmane.comp.python.pyrex |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
It looks to me like Pyrex's behavior for reraising exceptions differs
somewhat from Python's:
# pyrex_raise.pyx and python_raise.py:
def my_raise():
try:
raise NotImplementedError
except:
raise
>>> import pyrex_raise, python_raise, sys, traceback
>>> python_raise.my_raise()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "python_raise.py", line 3, in my_raise
raise NotImplementedError
NotImplementedError
>>> sys.exc_info()
(None, None, None)
>>>
>>> pyrex_raise.crash()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pyrex_raise.pyx", line 5, in pyrex_raise.my_raise
raise
File "pyrex_raise.pyx", line 3, in pyrex_raise.my_raise
raise NotImplementedError
NotImplementedError
>>> sys.exc_info()
(<type 'exceptions.NotImplementedError'>, NotImplementedError(),
<traceback object at 0x7bda0>)
>>> traceback.print_tb(sys.exc_info()[2])
File "pyrex_raise.pyx", line 3, in pyrex_raise.my_raise
raise NotImplementedError
It looks like there's Pyrex code written specifically to handle
reraising exceptions, but it's not getting generated here, so I was
wondering if this behavior was intentional or a bug.
Thanks,
Miles