12

无论如何要编写一个从 python 2.4 到 python 3 兼容的异常捕获代码?

像这样的代码:

# only works in python 2.4 to 2.7
try:
    pass
except Exception,e:
   print(e)

# only works in python 2.6 to 3.3
try:
    pass
except Exception as e:
    print(e)
4

1 回答 1

17

尝试编写同时适用于 Python 2 和 Python 3 的代码最终是徒劳的,因为它们之间存在大量差异。事实上,许多项目现在都维护在单独的 Python 2 和 Python 3 版本中。

也就是说,如果你一心想以超级便携的方式做到这一点......

import sys
try:
    ...
except Exception:
    t, e = sys.exc_info()[:2]
    print(e)
于 2012-10-01T23:36:27.637 回答