在 while 循环中处理异常

新手上路,请多包涵

如果网页尚未加载,我正在调用一个将引发异常的函数。我想等待 2 秒,然后再试一次,直到页面加载完毕。

我试过这个:

 while(True):
    try:
        some_function()
        break
    except:
        time.sleep(2)

但它在第一次迭代后逃脱了。

如果没有引发异常,我该如何逃脱?

原文由 Luis Ramon Ramirez Rodriguez 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 547
2 个回答

尝试这样的事情:

 def some_function(){
    try:
        #logic to load the page. If it is successful, it will not go to except.
        return True
    except:
        #will come to this clause when page will throw error.
        return False
    }

while(True):
    if some_function():
        break
    else:
        time.sleep(2)
        continue

原文由 Deca 发布,翻译遵循 CC BY-SA 4.0 许可协议

为什么不这样:

 res = False
while (res == False):
    time.sleep(2)
    try:
        some_function()
        res = boolean(some_function())
    except:
        continue

原文由 Ma0 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题