使用`try except`尝试两个表达式
作者:互联网
我有两个表达方式.我需要尝试一个表达式,如果它引发异常尝试另一个,但如果第二个也引发异常 – 引发异常.
我试过这个,但它看起来很难看,我不确定这是解决这个问题的最佳方法:
try:
image = self.images.order_by(func.random()).limit(1)
except:
try:
image = self.images.order_by(func.rand()).limit(1)
except ProgrammingError:
raise ProgrammingError(
'The database engine must be PostgtreSQL or MySQL')
你怎么做呢?
解决方法:
制作单独的功能非常有帮助.
def get_random_image(self):
for rand in func.random, func.rand:
try:
return self.images.order_by(rand()).limit(1)
except ProgrammingError:
pass
raise ProgrammingError('This database engine is not supported')
标签:python,sqlalchemy,try-except 来源: https://codeday.me/bug/20190725/1537805.html