这段代码是否正确?我最终得到了一个Errno 111,程序仍然退出而不是一次又一次地尝试。
当我收到连接错误时,我想等待10秒钟,然后重试再次获取该网址。
我正在使用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")
答案 0 :(得分:0)
所以这就是我最终做的事情,它似乎有效: 我想要的是在出现任何错误后会再次重试的内容,但也告诉我错误是什么。这段代码在PythonANywhere上运行,所以我不担心键盘中断等...此外,range()中的尝试确保代码不会像在True 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