我对 python 异常有一个微妙的问题。我的软件目前在多个平台上运行,我仍然致力于与 py2.5 兼容,因为它位于更改版本将成为主要工作的集群上。
其中一个(debian)系统最近从 2.6 更新到 2.7,并且一些代码从底层 C 部分抛出了奇怪的异常。但是,以前从未出现过这种情况,并且在我的 mac 2.7 上仍然不是这种情况-> 代码中没有错误,而是使用了一个新库。
我想出了如何管理 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