这段代码正确吗?我最终得到一个Errno 111,程序仍然退出,而不是一次又一次地尝试。
当我得到一个连接错误,我想等待10秒,然后重试获取URL再次
我使用Python 2.7.
import errno
for attempt in range(20):
try:
browser.get(url)
except EnvironmentError as exc:
if exc.errno == errno.ECONNREFUSED:
anow = datetime.datetime.now()
print("got a 111 connection error",anow)
time.sleep(10)
elif exc.errno == errno.ECONNRESET:
anow = datetime.datetime.now()
print("got a RESET connection error",anow)
time.sleep(10)
else:
continue
else:
break
else:
print("tried 20 times - kept getting Error")
所以这就是我最终做的,它似乎有效:
我想要的是在任何错误之后重新尝试的东西,但也告诉我错误是什么。这段代码在PythonANywhere上运行,所以我不担心键盘中断等…此外,range()
中的尝试确保代码不会像在While-True循环中那样永远运行。
for attempt in range(1,3):
try:
browser.get(url)
print("browser success",i)
break
except Exception as e:
print(e," Attempt:" + str(attempt))
time.sleep(4)
pass