try-except inside a loop

前端 未结 2 1260
伪装坚强ぢ
伪装坚强ぢ 2020-12-30 13:34

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 excep

2条回答
  •  抹茶落季
    2020-12-30 14:26

    Use try .. except .. else:

    for i in range(3, 0, -1):
      try:
        f()
      except IOError:
        if i == 1:
          raise
        print('retry')
      else:
        break
    

    You should not generically catch all errors. Just let them bubble up to the appropriate handler.

提交回复
热议问题