问题描述
因此,在我想使用自定义消息引发异常的情况下,该异常包含在错误处理函数中,目的是格式化错误消息,如何获取原始回溯而不是在引发时将其切断? 示例:
import functools
import traceback
def error_handler():
def decorated(f):
@functools.wraps(f)
def wrap_func(*args,**kwargs):
try:
return f(*args,**kwargs)
except (AssertionError) as e:
# DO SOME ERROR MESSAGE FORMATTING
traceback.print_tb(e.__traceback__)
return wrap_func
return decorated
@error_handler()
def fail():
try:
assert 2 == 5
except AssertionError as e:
raise AssertionError("Custom Message") from e
fail()
所以在这种情况下,打印的堆栈跟踪将打印
raise AssertionError("Custom Message") from e
不是断言错误。
我猜第二个除了将加薪捕获为一个新的异常而不是一个链接的异常,但无论如何都可以用自定义消息冒泡吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)