我有一个问题,我需要让同一段代码依赖于两个不同版本的PyGreSQL。问题是一个版本有一个异常错误(小写),而另一个版本有一个异常错误(大写)。我怎样才能优雅地处理这件事。如果我有:
try:
do_something
except pg.error, x:
print "Database connection error: ", x
except pg.Error, x:
print "Database connection error: ", x
然后我总是遇到一个问题,当错误被抛出,因为它首先传递错误,错误是未知的。Python中有什么方法可以处理这个问题吗?你知道吗
我的意思是C++中有一个预处理器条件来处理它,但是在Python中我没有线索。你知道吗这一切都是由于某个无限聪明的人在某个地方改变了版本之间的情况。你知道吗
你可以这样说:
它使用了方便的特性,其中真值是
1
,假值是0
。这样,如果pg
有一个名为Error
的属性,它就使用getattr(pg, [("error", "Error")[1]))
,简化为getattr(pg, "Error")
或pg.Error
。如果它没有这个属性,通过同样的简化我们可以看到它使用pg.error
。你知道吗在实际的
try..catch
之前通过实验确定异常类型:您可以在导入过程中解决它,这也会简化代码:
之后:
相关问题 更多 >
编程相关推荐