# 21.9. `urllib.error` — Classes d’exceptions levées par urllib.request

Code source : Lib/urllib/error.py

Le module `urllib.error` définit les classes des exceptions levées par `urllib.request`. La classe de base de ces exceptions est `URLError`.

Les exceptions suivantes sont levées par `urllib.error` aux cas appropriés :

exception `urllib.error.``URLError`

  Les gestionnaires lèvent cette exception (ou des exceptions dérivées) quand ils rencontrent un problème. Elle est une sous-classe de `OSError`.

  `reason`

    La raison de cette erreur. Il peut s’agir d’un message textuel ou d’une autre instance d’exception.

  Modifié dans la version 3.3: `URLError` est maintenant une sous-classe de `OSError` plutôt que `IOError`.

exception `urllib.error.``HTTPError`

  Bien qu’étant une exception (une sous-classe de `URLError`), une `HTTPError` peut aussi fonctionner comme une valeur de retour normale et fichier-compatible (la même chose que renvoyé par `urlopen()`). Cela est utile pour gérer les erreurs HTTP exotiques, comme les requêtes d’authentification.

  `code`

    Un statut HTTP comme défini dans la RFC 2616. Cette valeur numérique correspond à une valeur trouvée dans le dictionnaire des codes comme dans `http.server.BaseHTTPRequestHandler.responses`.

  `reason`

    Il s’agit habituellement d’une chaîne de caractères expliquant la raison de l’erreur.

  `headers`

    Les en-têtes de la réponse HTTP correspondant à la requête HTTP qui a causé la `HTTPError`.

    Nouveau dans la version 3.4.

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

  Cette exception est levée quand la fonction `urlretrieve()` détecte que le montant des données téléchargées est inférieur au montant attendu (donné par l’en-tête Content-Length). L’attribut `content` stocke les données téléchargées (et supposément tronquées).