Python の例外でデリケートな問題が発生しています。私のソフトウェアは現在複数のプラットフォームで実行されていますが、バージョンの変更が大きな労力になるクラスター上にあるため、py2.5 との互換性を維持することを目指しています。
(debian) システムの 1 つが最近 2.6 から 2.7 に更新され、一部のコードが基盤となる C 部分から奇妙な例外をスローします。ただし、これは以前は決してありませんでしたし、私の mac 2.7 でもそうではありません -> コードにバグはなく、新しいライブラリの 1 つにバグがあります。
2.7 の例外の扱い方を考えましたが、残念ながら例外処理は 2.5 と互換性がありません。
「プリプロセッサ コマンド - C スタイル」のようなものを実行する方法はありますか?
if interpreter.version == 2.5:
foo()
elif interpreter.version == 2.7:
bar()
?
乾杯、エル
添付例:
try:
foo()
except RuntimeError , (errorNumber,errorString):
print 'a'
#ok with 2.5, 2.7 however throws exceptions
try:
foo()
except RuntimeError as e:
print 'a'
#ok with 2.7, 2.5 does not understand this