I have a loop starting with for i in range(0, 100)
. Normally it runs correctly, but sometimes it fails due to network conditions. Currently I have it set so that on failure, it will continue
in the except clause (continue on to the next number for i
).
Is it possible for me to reassign the same number to i
and run through the failed iteration of the loop again?
Do a while True
inside your for loop, put your try
code inside, and break from that while
loop only when your code succeeds.
for i in range(0,100):
while True:
try:
# do stuff
except SomeSpecificException:
continue
break
I prefer to limit the number of retries, so that if there's a problem with that specific item you will eventually continue onto the next one, thus:
for i in range(100):
for attempt in range(10):
try:
# do thing
except:
# perhaps reconnect, etc.
else:
break
else:
# we failed all the attempts - deal with the consequences.