3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
做一個(gè)while True內(nèi)部的for循環(huán),把你的try代碼中,并突破從while只有當(dāng)你的代碼的成功循環(huán)。
for i in range(0,100):
while True:
try:
# do stuff
except SomeSpecificException:
continue
break

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
我更喜歡限制重試的次數(shù),這樣,如果該特定項(xiàng)目有問題,您最終將繼續(xù)進(jìn)行下一個(gè),因此:
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.

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是一種與其他解決方案類似的解決方案,但是如果未按規(guī)定的次數(shù)或重試次數(shù)失敗,則會(huì)引發(fā)異常。
tries = 3
for i in range(tries):
try:
do_the_thing()
except KeyError as e:
if i < tries - 1: # i is zero indexed
continue
else:
raise
break
添加回答
舉報(bào)