如何编写异常捕获代码在Python2.4中工作到Python3

时间:2012-10-01 23:33:11

标签: python python-3.x

是否有编写从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)

1 个答案:

答案 0 :(得分:16)

尝试编写在Python 2和Python 3中都有效的代码最终是徒劳的,因为它们之间存在着巨大的差异。实际上,很多项目现在都在单独的Python 2和Python 3版本中进行维护。

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

import sys
try:
    ...
except Exception:
    t, e = sys.exc_info()[:2]
    print(e)