asleep-cult <asleep.c...@gmail.com> added the comment:
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 ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue42848> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com