> **Источник:** https://python-all.ru/3.12/library/urllib.error.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `urllib.error` – Классы исключений, вызываемые urllib.request

**Исходный код:** [Lib/urllib/error.py](https://python-all.ru/src/3.12/Lib/urllib/error.py)

---

Модуль [`urllib.error`](https://python-all.ru/3.12/library/urllib.error.html#module-urllib.error) определяет классы исключений для исключений, вызываемых [`urllib.request`](https://python-all.ru/3.12/library/urllib.request.html#module-urllib.request). Базовым классом исключений является [`URLError`](https://python-all.ru/3.12/library/urllib.error.html#urllib.error.URLError).

Следующие исключения вызываются [`urllib.error`](https://python-all.ru/3.12/library/urllib.error.html#module-urllib.error) в соответствующих случаях:

#### `exception urllib.error.URLError`

Обработчики вызывают это исключение (или производные от него), когда сталкиваются с проблемой. Оно является подклассом [`OSError`](https://python-all.ru/3.12/library/exceptions.html#OSError).

#### `reason`

Причина этой ошибки. Это может быть строка сообщения или другой экземпляр исключения.

Изменено в версии 3.3: [`URLError`](https://python-all.ru/3.12/library/urllib.error.html#urllib.error.URLError) раньше был подтипом [`IOError`](https://python-all.ru/3.12/library/exceptions.html#IOError), который теперь является псевдонимом [`OSError`](https://python-all.ru/3.12/library/exceptions.html#OSError).

#### `exception urllib.error.HTTPError(url, code, msg, hdrs, fp)`

Хотя [`HTTPError`](https://python-all.ru/3.12/library/urllib.error.html#urllib.error.HTTPError) и является исключением (подклассом [`URLError`](https://python-all.ru/3.12/library/urllib.error.html#urllib.error.URLError)), он также может выступать в роли неисключительного файлоподобного возвращаемого значения (аналогично тому, что возвращает [`urlopen()`](https://python-all.ru/3.12/library/urllib.request.html#urllib.request.urlopen)). Это полезно при обработке необычных HTTP-ошибок, например, запросов аутентификации.

#### `url`

Содержит URL запроса. Псевдоним атрибута *filename*.

#### `code`

Код состояния HTTP, определённый в [**RFC 2616**](https://python-all.ru/3.12/library/urllib.error.html). Это числовое значение соответствует значению из словаря кодов, представленного в [`http.server.BaseHTTPRequestHandler.responses`](https://python-all.ru/3.12/library/http.server.html#http.server.BaseHTTPRequestHandler.responses).

#### `reason`

Обычно это строка, объясняющая причину ошибки. Псевдоним атрибута *msg*.

#### `headers`

Заголовки HTTP-ответа для HTTP-запроса, вызвавшего [`HTTPError`](https://python-all.ru/3.12/library/urllib.error.html#urllib.error.HTTPError). Псевдоним атрибута *hdrs*.

Добавлено в версии 3.4.

#### `fp`

Файлоподобный объект, из которого можно читать тело HTTP-ошибки.

#### `exception urllib.error.ContentTooShortError(msg, content)`

Это исключение вызывается, когда функция [`urlretrieve()`](https://python-all.ru/3.12/library/urllib.request.html#urllib.request.urlretrieve) обнаруживает, что объём загруженных данных меньше ожидаемого (заданного заголовком *Content-Length*).

#### `content`

Загруженные (и предположительно усечённые) данные.
