I need to invoke method f. If it raises an IOError, I need to invoke it again (retry), and do it at most three times. I need to log any other exceptions, and I need to log all retries.
the code below does this, but it looks ugly. please help me make it elegant and pythonic. I am using 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:You should not generically catch all errors. Just let them bubble up to the appropriate handler.