Я ловлю исключения в менеджерах контекста, однако я не вижу все уровни повторных исключений.Кто-нибудь знает, как это улучшить?
import traceback
def f():
try:
raise Exception("Interesting")
except Exception as e:
raise Exception("Exc {} raised".format(e))
class Try():
def __enter__(self):
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Exception {} raised".format(exc_val))
print("".join(traceback.format_tb(exc_tb, 100)))
return True
with Try():
f()
Здесь я также хотел бы видеть строку кода "Интересного" исключения (строка 5) в трассировке, однако я получаю
Exception Exc Interesting raised raised
File "try_test.py", line 19, in <module>
f()
File "try_test.py", line 7, in f
raise Exception("Exc {} raised".format(e))