首页 > 解决方案 > 为什么我们在 Python 3 中需要显式异常链

问题描述

我刚刚了解了 Python 中的异常链接。我看到的是,有两种方式——隐式和显式。如果我不做任何特别的事情并引发异常。Py 将自动保存有关先前异常的信息(如果我正确理解它的__context__属性)。如果没有捕获第二个异常,我会得到包含两个异常的漂亮堆栈。我也可以使用from关键字明确地做到这一点。在这种情况下,我看到的唯一区别是,不是使用__context__Py 而是使用__cause__. 并且堆栈消息从During handling of the above exception, another exception occurred:变为The above exception was the direct cause of the following exception:。那么为什么会有显式异常链呢?如果我什么都不做,我也会得到同样的东西。

标签: pythonexceptionimplicitexplicit

解决方案


推荐阅读