:mod:`!urllib.error` --- Exception classes raised by urllib.request
===================================================================
.. module:: urllib.error
:synopsis: Exception classes raised by urllib.request.
.. moduleauthor:: Jeremy Hylton <[email protected]>
.. sectionauthor:: Senthil Kumaran <[email protected]>
**Source code:** :source:`Lib/urllib/error.py`
--------------
The :mod:`urllib.error` module defines the exception classes for exceptions
raised by :mod:`urllib.request`. The base exception class is :exc:`URLError`.
The following exceptions are raised by :mod:`urllib.error` as appropriate:
.. exception:: URLError
The handlers raise this exception (or derived exceptions) when they run into
a problem. It is a subclass of :exc:`OSError`.
.. attribute:: reason
The reason for this error. It can be a message string or another
exception instance.
.. versionchanged:: 3.3
:exc:`URLError` used to be a subtype of :exc:`IOError`, which is now an
alias of :exc:`OSError`.
.. exception:: HTTPError(url, code, msg, hdrs, fp)
Though being an exception (a subclass of :exc:`URLError`), an
:exc:`HTTPError` can also function as a non-exceptional file-like return
value (the same thing that :func:`~urllib.request.urlopen` returns). This
is useful when handling exotic HTTP errors, such as requests for
authentication.
.. attribute:: url
Contains the request URL.
An alias for *filename* attribute.
.. attribute:: code
An HTTP status code as defined in :rfc:`2616`. This numeric value corresponds
to a value found in the dictionary of codes as found in
:attr:`http.server.BaseHTTPRequestHandler.responses`.
.. attribute:: reason
This is usually a string explaining the reason for this error.
An alias for *msg* attribute.
.. attribute:: headers
The HTTP response headers for the HTTP request that caused the
:exc:`HTTPError`.
An alias for *hdrs* attribute.
.. versionadded:: 3.4
.. attribute:: fp
A file-like object where the HTTP error body can be read from.
.. exception:: ContentTooShortError(msg, content)
This exception is raised when the :func:`~urllib.request.urlretrieve`
function detects that
the amount of the downloaded data is less than the expected amount (given by
the *Content-Length* header).
.. attribute:: content
The downloaded (and supposedly truncated) data.