Leçon 4 / 9 — Chapitre 7: Requêtes HTTP et APIs
Gérer les erreurs HTTP avec raise_for_status()
Tester status_code manuellement à chaque appel devient répétitif. reponse.raise_for_status() lève automatiquement une exception si le statut indique une erreur (4xx ou 5xx), sans rien faire si tout s'est bien passé.
import requests
reponse = requests.get("https://api.exemple.com/produits/999")
# suppose : status_code vaut 404
try:
reponse.raise_for_status()
donnees = reponse.json()
except requests.exceptions.HTTPError as e:
print("Erreur HTTP :", e)
Ce code affiche Erreur HTTP : ... (avec le détail de l'erreur 404) : raise_for_status() lève une requests.exceptions.HTTPError (une exception personnalisée du module requests, sur le même principe que les exceptions personnalisées vues dans Python Intermédiaire), interceptée par le try/except.
Sur un statut de succès (2xx), raise_for_status() ne fait strictement rien, et l'exécution continue normalement :
# suppose : status_code vaut 200
reponse.raise_for_status()
donnees = reponse.json()
print("Recuperation reussie")
Cette approche évite d'écrire if reponse.status_code == 200: ... else: ... à chaque appel, en laissant try/except gérer le cas d'erreur une seule fois, de façon centralisée.
À vous de jouer : écrivez un bloc try/except requests.exceptions.HTTPError autour d'un appel qui utilise raise_for_status().
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès