# 21.9. `urllib.error` — Classes de exceção levantadas por urllib.request

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

O módulo `urllib.error` define as classes de exceção para exceções levantadas por `urllib.request`. A classe de exceção base é `URLError`.

As seguintes exceções são levantadas por `urllib.error` conforme apropriado:

exception `urllib.error.``URLError`

  Os manipuladores levantam essa exceção (ou exceções derivadas) quando encontram um problema. É uma subclasse de `OSError`.

  `reason`

    O motivo desse erro. Pode ser uma string de mensagem ou outra instância de exceção.

  Alterado na versão 3.3: `URLError` foi tornada uma subclasse de `OSError` em vez de `IOError`.

exception `urllib.error.``HTTPError`

  Embora seja uma exceção (uma subclasse de `URLError`), uma `HTTPError` também pode funcionar como um valor de retorno não excepcional do tipo arquivo (a mesma coisa que `urlopen()` retorna). Isso é útil ao lidar com erros de HTTP exóticos, como solicitações de autenticação.

  `code`

    Um código de status HTTP conforme definido em RFC 2616. Este valor numérico corresponde a um valor encontrado no dicionário de códigos conforme encontrado em `http.server.BaseHTTPRequestHandler.responses`.

  `reason`

    Geralmente é uma string explicando o motivo desse erro.

  `headers`

    Os cabeçalhos de resposta HTTP para a solicitação HTTP que causou a `HTTPError`.

    Novo na versão 3.4.

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

  Esta exceção é levantada quando a função `urlretrieve()` detecta que a quantidade de dados baixados é menor que a quantidade esperada (fornecida pelo cabeçalho Content-Length). O atributo `content` armazena os dados baixados (e supostamente truncados).