0

当我得到套接字超时异常时重试的最聪明的方法是什么

试试: opener=urllib.FancyURLopener(proxies) res=opener.open(req)

除了作为细节的例外:self.writeLog(details)

让上面的代码我从套接字中得到一个超时错误,我想更改代理并重试我该怎么做(我的函数不能递归完成)我应该使用类似 while error is not socket timeout keep这样做?还是应该做一段时间 True 并且在除了部分更改代理?

什么是最聪明的方法?

4

2 回答 2

2

你的意思是这样的吗?

for proxy in proxy_list:
    try:
        open_url(proxy, timeout=MY_TIMEOUT_VALUE)
        break
    except ASocketTimeoutError:
        pass

open_url()您使用的任何可能导致套接字超时的代码在哪里,并且ASocketTimeoutError是套接字超时异常的名称。

于 2013-07-11T18:07:22.397 回答
0

编写一个单独的函数来处理连接,如果连接失败,此函数将引发异常。然后在您的主代码中,您可以使用 try-catch 和 while 循环来尝试连接多次。

于 2013-07-11T17:36:31.897 回答