用其他类型和消息重新引发异常,保留现有信息

用其他类型和消息重新引发异常,保留现有信息,第1张

用其他类型和消息重新引发异常,保留现有信息

Python 3 引入了 异常链接 (如PEP
3134中所述
)。这允许在引发异常时引用现有异常作为“原因”:

try:    frobnicate()except KeyError as exc:    raise ValueError("Bad grape") from exc

捕获到的异常(

exc
KeyError)因此成为新异常ValueError的一部分(“原因”)。任何捕获新异常的代码都可以使用“原因”。

通过使用此功能,

__cause__
可以设置属性。内置的异常处理程序还知道如何报告异常的“原因”和“上下文”以及回溯。


Python 2中 ,该用例似乎没有很好的答案(如Ian
Bicking和Ned
Batchelder所述)。笨蛋



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5655681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存