Мне нужна функция, перехватывающая стек исключений. Однако оказалось, что простой способ типа
try:
raising_func()
except Exception:
_, _, tb = sys.exc_info()
работает, только если его явно прописать, а вызванный из функции вот таким образом
#перехватывающая функция
def stack_capture(func):
try:
func()
except Exception:
_, _, tb = sys.exc_info()
return tb
#вызов
def some_function()
my_tb = stack_capture(raising_func)
возвращает только верхнее исключение, возникшее внутри самой stack_capture(). Отчего так происходит и можно ли получить весь стек?