12

Python2.4からPython3と互換性のある例外キャッチコードを書く方法はありますか?

このコードのように:

# 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

Python2とPython3の両方で機能するコードを書き込もうとすると、両者の違いが非常に多いため、最終的にはかなり無駄になります。実際、多くのプロジェクトは、結果としてPython2とPython3の別々のバージョンで維持されています。

そうは言っても、もしあなたがこれを超ポータブルな方法でやるのにひどい思いをしているのなら...

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