当我得到套接字超时异常时,最聪明的方法是再次尝试
尝试: 开瓶器= urllib.FancyURLopener(代理人) RES = opener.open(REQ)
除了Exception详情: self.writeLog(详情)
让上面的代码我从套接字中得到一个超时错误,我想更改代理并再次尝试我该怎么做(我的函数不能做递归)我应该使用像错误不是套接字的东西超时继续这样做?或者应该做一段时间True并在except部分更改代理?
最聪明的方式是什么?
答案 0 :(得分:2)
你的意思是这样吗?
for proxy in proxy_list:
try:
open_url(proxy, timeout=MY_TIMEOUT_VALUE)
break
except ASocketTimeoutError:
pass
其中open_url()
是您正在使用的任何代码,可能导致套接字超时,ASocketTimeoutError
是套接字超时异常的名称。
答案 1 :(得分:0)
编写一个处理连接的单独函数,如果连接失败,则此函数会抛出异常。然后在主代码中,您可以使用try-catch和while循环来尝试连接多次。