python try如果套接字超时,请重试

2024-06-16 17:42:05 发布

您现在位置:Python中文网/ 问答频道 /正文

当我遇到套接字超时异常时,最聪明的方法是什么

尝试: 开瓶器=urllib.FancyURLopener(代理人) 资源=打开器。打开(要求)

例外情况除外: 自写日志(详细信息)

对于上面的代码,我从socket中得到一个超时错误,我想更改代理并再试一次如何做到这一点(我的函数不能递归)我应该使用whileerror is not socket timeout keep this?还是应该做一段时间真的在例外部分更改代理?在

最聪明的方法是什么?在


Tags: 方法函数代码代理is错误not详细信息
2条回答

你的意思是这样吗?在

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

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

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

相关问题 更多 >