异常后如何重试?

我有一个以开头的循环for i in range(0, 100)。正常情况下,它可以正常运行,但有时由于网络条件而失败。目前,我已对其进行了设置,以便在失败时,它将continue在except子句中(继续到的下一个数字i)。

我是否可以将相同的数字重新分配给i循环并再次执行失败的循环?


慕运维8079593
浏览 499回答 3
3回答

HUH函数

做一个while True内部的for循环,把你的try代码中,并突破从while只有当你的代码的成功循环。for i in range(0,100):    while True:        try:            # do stuff        except SomeSpecificException:            continue        break

至尊宝的传说

我更喜欢限制重试的次数,这样,如果该特定项目有问题,您最终将继续进行下一个,因此: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.

慕无忌1623718

这是一种与其他解决方案类似的解决方案,但是如果未按规定的次数或重试次数失败,则会引发异常。tries = 3for i in range(tries):&nbsp; &nbsp; try:&nbsp; &nbsp; &nbsp; &nbsp; do_the_thing()&nbsp; &nbsp; except KeyError as e:&nbsp; &nbsp; &nbsp; &nbsp; if i < tries - 1: # i is zero indexed&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue&nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; raise&nbsp; &nbsp; break
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python