返回介绍

Python 3.0 异常链:raise from

发布于 2024-01-29 22:24:15 字数 948 浏览 0 评论 0 收藏 0

Python 3.0(而不是Python 2.6)也允许raise语句拥有一个可选的from子句:

当使用from的时候,第二个表达式指定了另一个异常类或实例,它会附加到引发异常的__cause__属性。如果引发的异常没有捕获,Python把异常也作为标准出错消息的一部分打印出来:

上面的异常是如下异常的直接原因:

当在一个异常处理器内部引发一个异常的时候,隐式地遵从类似的过程:前一个异常附加到新的异常的__context__属性,并且如果该异常未捕获的话,再次显示在标准出错消息中。这是一个高级的并且多少还有些含糊的扩展,因此,请参阅Python的手册以了解详细内容。

注意:版本差异提示:Python 3.0不再支持raise Exc,Args形式,而该形式在Python 2.6中仍然可用。在Python 3.0中,使用本书中介绍的raise Exc(Args)示例创建调用形式。Python 2.6中等价的逗号形式是遗留的语法,为了与现在已经废弃的基于字符串的异常类型兼容,并且它在Python 3.0中也是废弃的。如果使用的话,它会转换为Python 3.0的调用形式。正如在前面的版本中一样,一个raise Exc形式总是允许的,它在两个版本中都会转换为raiseExc()形式,调用无参数的类构造函数。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文