Message384554
I did test it with a simple recursive function but a more realistic test confirms that its not just __getattribute__ (which makes sense)
import asyncio
class Test(Exception):
...
def x():
raise Test('Hello World!')
def bar():
try:
x()
except Test as e:
try:
bar()
except Test as e:
raise e
async def foo():
bar()
loop = asyncio.get_event_loop()
loop.create_task(foo())
loop.run_forever()
Traceback:
Exception in default exception handler
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 1733, in call_exception_handler self.default_exception_handler(context)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 1707, in default_exception_handler
logger.error('\n'.join(log_lines), exc_info=exc_info)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1471, in error
self._log(ERROR, msg, args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1585, in _log
self.handle(record)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1595, in handle
self.callHandlers(record)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1665, in callHandlers
lastResort.handle(record)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 950, in handle
self.emit(record)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1081, in emit
msg = self.format(record)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 925, in format
return fmt.format(record)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 672, in format
record.exc_text = self.formatException(record.exc_info)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 622, in formatException
traceback.print_exception(ei[0], ei[1], tb, None, sio)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 103, in print_exception
for line in TracebackException(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 493, in __init__
context = TracebackException(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 493, in __init__
context = TracebackException(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 493, in __init__
context = TracebackException(
[Previous line repeated 488 more times]
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 476, in __init__
_seen.add(id(exc_value))
RecursionError: maximum recursion depth exceeded while calling a Python object
The Test('Hello World') exception is suppressed entirely
try:
bar()
except:
traceback.print_exc()
but when running it this way the traceback looks like this:
File "c:/Development/test/test.py", line 7, in x
raise Test('Hello World!')
RecursionError: maximum recursion depth exceeded while calling a Python object
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:/Development/test/test.py", line 21, in <module>
traceback.print_exc()
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 163, in print_exc
print_exception(*sys.exc_info(), limit=limit, file=file, chain=chain)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 103, in print_exception
for line in TracebackException(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 493, in __init__
context = TracebackException(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 493, in __init__
context = TracebackException(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\traceback.py", line 493, in __init__
context = TracebackException(
[Previous line repeated 495 more times]
RecursionError: maximum recursion depth exceeded |
|
Date |
User |
Action |
Args |
2021-01-07 03:03:07 | asleep-cult | set | recipients:
+ asleep-cult, gvanrossum |
2021-01-07 03:03:07 | asleep-cult | set | messageid: <1609988587.12.0.507831454569.issue42848@roundup.psfhosted.org> |
2021-01-07 03:03:07 | asleep-cult | link | issue42848 messages |
2021-01-07 03:03:07 | asleep-cult | create | |
|