是否有编写从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)
答案 0 :(得分:16)
尝试编写在Python 2和Python 3中都有效的代码最终是徒劳的,因为它们之间存在着巨大的差异。实际上,很多项目现在都在单独的Python 2和Python 3版本中进行维护。
那就是说,如果你是以一种超级便携的方式做到这一点......
import sys
try:
...
except Exception:
t, e = sys.exc_info()[:2]
print(e)