Python报告,例如仅使用缺少的键而不是未找到该键的字典来报告KeyError
。
我想在我的代码中“修复”这个问题:
d = {1:"2"}
try:
d[5]
except Exception as e:
raise type(e)(*(e.args+(d,)))
----> 5 raise type(e)(*e.args+(d,))
KeyError: (5, {1: '2'})
哎呀,栈指向了错误的行。
第二次尝试:
d = {1:"2"}
try:
d[5]
except Exception as e:
e.args += (d,)
raise e
----> 3 d[5]
KeyError: (5, {1: '2'})
这里的堆栈是正确的。
这是正确的做法吗?还有更好的方法吗?
raise type(e)(*(e.args+(d,))) from e
。 - Tomerikoo