:mod:`!urllib.error` --- Exception classes raised by urllib.request
===================================================================

.. module:: urllib.error
   :synopsis: Exception classes raised by urllib.request.

**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.
