Python 3 引入了 异常链接 (如PEP
3134中所述)。这允许在引发异常时引用现有异常作为“原因”:
try: frobnicate()except KeyError as exc: raise ValueError("Bad grape") from exc
捕获到的异常(
excKeyError)因此成为新异常ValueError的一部分(“原因”)。任何捕获新异常的代码都可以使用“原因”。
通过使用此功能,
__cause__可以设置属性。内置的异常处理程序还知道如何报告异常的“原因”和“上下文”以及回溯。
在 Python 2中 ,该用例似乎没有很好的答案(如Ian
Bicking和Ned
Batchelder所述)。笨蛋
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)