【发布时间】:2020-11-03 23:30:02
【问题描述】:
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
【问题讨论】:
标签: python python-3.x error-handling python-decorators traceback