jjj*_*jjj 5 python sockets exception-handling exception
我正在调用API,并收到以下超时错误:
socket.timeout The read operation timed out
Run Code Online (Sandbox Code Playgroud)
追溯到
File "/Users/someuser/anaconda/envs/python3/lib/python3.5/http/client.py", line 1198, in getresponse
response.begin()
File "/Users/someuser/anaconda/envs/python3/lib/python3.5/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/Users/someuser/anaconda/envs/python3/lib/python3.5/http/client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/Users/someuser/anaconda/envs/python3/lib/python3.5/socket.py", line 576, in readinto
return self._sock.recv_into(b)
File "/Users/someuser/anaconda/envs/python3/lib/python3.5/ssl.py", line 937, in recv_into
return self.read(nbytes, buffer)
File "/Users/someuser/anaconda/envs/python3/lib/python3.5/ssl.py", line 799, in read
return self._sslobj.read(len, buffer)
File "/Users/someuser/anaconda/envs/python3/lib/python3.5/ssl.py", line 583, in read
v = self._sslobj.read(len, buffer)
socket.timeout The read operation timed out
Run Code Online (Sandbox Code Playgroud)
如何从回溯的顶部捕获此错误?
小智 9
这是一个重复的问题,但是正确的方法是socket.timeout使用
import socket
try:
...
except socket.timeout:
...
Run Code Online (Sandbox Code Playgroud)
该错误指出了显式抛出的异常,您可以依赖它。尽管调用方法是 ssl lib,但错误似乎与实际的套接字连接有关。
谷歌搜索找到了我https://community.home-assistant.io/t/difficulty-having-an-exception/12955/6
似乎 SSLssl.SSLError在超时时会抛出异常。你可以尝试这样的事情:
import ssl
def getresponse():
...
try:
response.begin
except ssl.SSLError as err:
handle_error(err)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7885 次 |
| 最近记录: |