【问题标题】:How to implement Exception handing for both Python 2 and 3?如何为 Python 2 和 3 实现异常处理?
【发布时间】:2016-10-25 06:16:56
【问题描述】:

Python 3 改变了捕获异常的语法。如何使我的脚本兼容这两个版本?我知道检测 Python 版本的方法,但我是否需要使用 If-else 检查并重复整个 try-catch 块?

【问题讨论】:

  • 你可以直接在 Python 2.7 中使用except Blah as x 语法,如果你是这个意思的话。
  • @BrenBarn 是的!谢谢!!

标签: python python-2.7 python-3.x


【解决方案1】:

Python 2.6 和 2.7 支持新的 except Exception as e: 语法,就像 Python 3 一样。


如果你不幸使用早已死去的 Python 2 版本 2.5,甚至(喘气)2.4,它仍然是“可能的”,但你必须求助于一些可怕的 hack,比如

>>> import sys
>>> try:
...     1/0
... except ZeroDivisionError:
...     e = sys.exc_info()[1]
...     # process e
...     del e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2011-04-12
    • 1970-01-01
    相关资源
    最近更新 更多