# `urllib.error` — Clases de excepción lanzadas por urllib.request

Código fuente: Lib/urllib/error.py

El módulo `urllib.error` define las clases de excepción para las excepciones lanzadas por `urllib.request`. La clase de excepción base es `URLError`.

Las siguientes excepciones son lanzadas por `urllib.error` según sea apropiado:

exception `urllib.error.``URLError`

  Los gestores lanzan esta excepción (o excepciones derivadas) cuando encuentran un problema. Es una subclase de `OSError`.

  `reason`

    El motivo de este error. Puede ser una cadena de mensaje u otra instancia de una excepción.

  Distinto en la versión 3.3: Se ha convertido a `URLError` en una subclase de `OSError` en lugar de `IOError`.

exception `urllib.error.``HTTPError`

  A pesar de ser una excepción (una subclase de `URLError`), un `HTTPError` también puede funcionar como un valor de retorno no excepcional de tipo archivo (lo mismo que retorna `urlopen()`). Esto es útil para gestionar errores HTTP exóticos, como peticiones de autentificación.

  `code`

    Un código de estado HTTP como los definidos en RFC 2616. Este valor numérico se corresponde con un valor de un diccionario de códigos como el que hay en `http.server.BaseHTTPRequestHandler.responses`.

  `reason`

    Normalmente esto es una cadena de caracteres que explica el motivo de este error.

  `headers`

    Las cabeceras de la respuesta HTTP de la petición HTTP que causó el `HTTPError`.

    Nuevo en la versión 3.4.

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

  Esta excepción se lanza cuando la función `urlretrieve()` detecta que la cantidad de datos descargados es menor que la esperada (dada por la cabecera Content-Length). El atributo `content` almacena los datos descargados (y supuestamente truncados).