Python Glossary English

все 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Сообщить о неточности