我需要调用方法f
。如果它引发IOError
,我需要再次调用它(重试),最多执行三次。我需要记录任何其他异常,并且需要记录所有重试。
下面的代码可以做到这一点,但看起来很丑。请帮助我让它变得优雅和Pythonic。我正在使用Python 2.7。
thanks!
count = 3
while count > 0:
try:
f()
except IOError:
count -= 1
if count > 0:
print 'retry'
continue
except Exception as x:
print x
break
Use try .. except .. else
:
for i in range(3, 0, -1):
try:
f()
except IOError:
if i == 1:
raise
print('retry')
else:
break
一般而言,您不应该捕获所有错误。只需让它们冒泡到适当的处理程序即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)