在urllib2.URLError之后再次尝试:<urlopen error =“”[errno =“”111] =“”connection =“”rejected =“”>

时间:2016-09-16 14:55:12

标签: python-2.7 exception

这段代码是否正确?我最终得到了一个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")

1 个答案:

答案 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