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

---

# 20.8. [`urllib.error`](https://python-all.ru/3.2/library/urllib.error.html#module-urllib.error) – классы исключений, вызываемые urllib.request

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

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

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

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

#### `reason`

Причина этой ошибки. Это может быть строка сообщения или другой экземпляр исключения ([`socket.error`](https://python-all.ru/3.2/library/socket.html#socket.error) для удалённых URL, [`OSError`](https://python-all.ru/3.2/library/exceptions.html#OSError) для локальных URL).

#### `exception urllib.error.HTTPError`

Though being an exception (a subclass of [`URLError`](https://python-all.ru/3.2/library/urllib.error.html#urllib.error.URLError)), an [`HTTPError`](https://python-all.ru/3.2/library/urllib.error.html#urllib.error.HTTPError) can also function as a non-exceptional file-like return value (the same thing that `urlopen()` returns). This is useful when handling exotic HTTP errors, such as requests for authentication.

#### `code`

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

#### `reason`

Обычно это строка, поясняющая причину этой ошибки.

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

Это исключение вызывается, когда функция `urlretrieve()` обнаруживает, что объём загруженных данных меньше ожидаемого (указанного в заголовке *Content-Length*). Атрибут `content` хранит загруженные (и предположительно усечённые) данные.
