Поддерживает ли Python способ отображения одного и того же пользовательского сообщения об ошибке для каждого исключения / повышения / утверждения (независимо от того, где произошел сбой кода)?
Моя текущая трещина в ней использует декоратор. У меня есть функция main
, и она отлично отображает трассировку, но я хочу, чтобы она также печатала my_var
(который находится ВНУТРИ области действия функции) каждый раз, когда возникает ЛЮБАЯ ошибка. Итак, очевидно, что здесь есть проблема с масштабом - это просто для иллюстрации того, что я хочу сделать. Любые идеи приветствуются.
import traceback
def exit_with_traceback(func, *args, **kwargs):
def wrap(*args, **kwargs):
try:
return func(*args, **kwargs)
except:
# how do I get this to print my_var AND the traceback?
print(traceback.format_exc())
return wrap
@exit_with_traceback
def main(bar=1):
my_var = 'hello world' # variable specific to main()
return bar + 1
main(bar=None) # run main() to throw the exception