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

---

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

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

Следующие исключения вызываются модулем `urllib.error` в соответствующих случаях:

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

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

#### `reason`

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

[`socket.error`](https://python-all.ru/3.1/library/socket.html#socket.error)

для удалённых URL,

[`OSError`](https://python-all.ru/3.1/library/exceptions.html#OSError)

для локальных URL).

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

Though being an exception (a subclass of [`URLError`](https://python-all.ru/3.1/library/urllib.error.html#urllib.error.URLError)), an [`HTTPError`](https://python-all.ru/3.1/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.1/library/urllib.error.html)

. Это числовое значение соответствует значению из словаря кодов, приведенного в

[`http.server.BaseHTTPRequestHandler.responses`](https://python-all.ru/3.1/library/http.server.html#http.server.BaseHTTPRequestHandler.responses)

.

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

Это исключение вызывается, когда функция

`urlretrieve()`

обнаруживает, что объём загруженных данных меньше ожидаемого (указанного в заголовке

*Content-Length*

). Атрибут

`content`

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