如果网页尚未加载,我正在调用一个会引发异常的函数。我想等待2秒,然后再试一次,直到页面加载完毕。
我试试这个:
while(True):
try:
some_funciont()
break
except:
time.sleep(2)
但它在第一次迭代后逃脱。
如果未引发异常,我该如何逃避?
答案 0 :(得分:4)
尝试这样的事情:
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
答案 1 :(得分:3)
为什么不这样:
res = False
while (res == False):
time.sleep(2)
try:
some_function()
res = boolean(some_function())
except:
continue
答案 2 :(得分:1)
try块中的所有内容都将被执行,直到Exception
被引发,这种情况下except
块被调用。
所以你在第一次迭代中就会破裂。
我认为你的意思是:
while(True):
try:
some_function()
except:
time.sleep(2)
break
引发异常时,while循环将被破坏。
答案 3 :(得分:-1)
这是因为如果你中断,它将会突破while循环。摆脱断裂和缩进除外。
while(True):
try:
some_function()
if check_loaded:
break
except:
time.sleep(2)
答案 4 :(得分:-1)
删除break语句。 Break应该在第一次
之后退出循环块