似乎无法处理 socket.timout 异常
Can't seem to handle socket.timout exception
我在 python 中编写了一个名为 ppod 的 "little" 播客下载程序,我用它来下载我关注的最新一集播客。实际上有 2 个主要步骤涉及互联网连接:下载播客的 RSS XML 页面,以及下载从已解析的 XML 页面检索到的音频文件。这些步骤中的任何一个都可能(并且经常)超时,但对于我来说,我似乎无法处理对这种超时的期望。我使用以下方法获取 XML 文件:
import urllib.request
from socket import timeout
for i in range(1,5):
try:
f = urllib.request.urlopen( url, timeout = 15)
break
except timeout:
pass
我不断收到此错误:
Traceback (most recent call last):
File "/usr/local/bin/ppod", line 293, in <module>
pod.getXML()
File "/usr/local/bin/ppod", line 114, in getXML
content = f.read().decode('UTF-8').strip()
File "/usr/lib/python3.5/http/client.py", line 446, in read
s = self.safe_read(self.length)
File "/usr/line/python3.5/http/client.py", line 592, in _safe_read
chunck =self.fp.read(min(amt, MAXAMOUNT))
File "/usr/lib/python3.5/socket.py", line 575, in readinto
reaturn self._sock.recv_into(b)
socket.timeout: timed out
我也尝试过不对 except
进行限定,并且还使用 except socket.timeout
和 import socket
而不是 from socket import timeout
,但我仍然没有得到想要的行为.
如何处理来自 urllib.request
的 socket.timeout
异常?
查看您的堆栈跟踪 - none 您发布的代码在堆栈跟踪中。您的代码中的问题不在此片段中。
我在 python 中编写了一个名为 ppod 的 "little" 播客下载程序,我用它来下载我关注的最新一集播客。实际上有 2 个主要步骤涉及互联网连接:下载播客的 RSS XML 页面,以及下载从已解析的 XML 页面检索到的音频文件。这些步骤中的任何一个都可能(并且经常)超时,但对于我来说,我似乎无法处理对这种超时的期望。我使用以下方法获取 XML 文件:
import urllib.request
from socket import timeout
for i in range(1,5):
try:
f = urllib.request.urlopen( url, timeout = 15)
break
except timeout:
pass
我不断收到此错误:
Traceback (most recent call last):
File "/usr/local/bin/ppod", line 293, in <module>
pod.getXML()
File "/usr/local/bin/ppod", line 114, in getXML
content = f.read().decode('UTF-8').strip()
File "/usr/lib/python3.5/http/client.py", line 446, in read
s = self.safe_read(self.length)
File "/usr/line/python3.5/http/client.py", line 592, in _safe_read
chunck =self.fp.read(min(amt, MAXAMOUNT))
File "/usr/lib/python3.5/socket.py", line 575, in readinto
reaturn self._sock.recv_into(b)
socket.timeout: timed out
我也尝试过不对 except
进行限定,并且还使用 except socket.timeout
和 import socket
而不是 from socket import timeout
,但我仍然没有得到想要的行为.
如何处理来自 urllib.request
的 socket.timeout
异常?
查看您的堆栈跟踪 - none 您发布的代码在堆栈跟踪中。您的代码中的问题不在此片段中。