все Python 3http.clientисключение
http.client.HTTPException
исключения
Базовый класс всех исключений модуля http.client. Ловит ошибки протокола, но не сетевые ошибки сокета.
Синтаксис
except http.client.HTTPException as e: ...
except HTTPException не поймает отказ в соединении, таймаут и обрыв на уровне сокета: это OSError и его потомки (ConnectionRefusedError, TimeoutError). Надёжный обработчик ловит оба: except (http.client.HTTPException, OSError). Исключение — RemoteDisconnected: оно наследует и BadStatusLine, и ConnectionResetError, так что попадёт в любую из веток. Ответ 404 или 500 исключением вовсе не является.
Примеры
import http.client
print(issubclass(http.client.LineTooLong, http.client.HTTPException)) # → True
print(issubclass(ConnectionRefusedError, http.client.HTTPException)) # → False
print(issubclass(http.client.RemoteDisconnected, OSError)) # → True
import http.client
import socket
server, client = socket.socketpair()
server.sendall(b'garbage\r\n')
server.close()
resp = http.client.HTTPResponse(client)
try:
resp.begin()
except http.client.HTTPException as e:
print(type(e).__name__) # → BadStatusLine
client.close()
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности