DébutantNon commencé

Exercice 9.5 · 8 min · 0 tentative

Gérer les erreurs API

🎯 Objectif

Utiliser try/catch pour gérer les erreurs quand un appel API échoue.

📖 Contexte

Pourquoi gérer les erreurs ?

Les appels API peuvent échouer : serveur down, produit supprimé, réseau coupé... Sans gestion d'erreur, ton programme plante.

// ❌ Sans try/catch → le programme plante si ça échoue
const response = await fetch("https://api.exemple.com/produit/999")
const data = await response.json()

// ✅ Avec try/catch → l'erreur est gérée proprement
try {
  const response = await fetch("https://api.exemple.com/produit/999")
  const data = await response.json()
} catch (error) {
  console.log("Oups :", error.message)
}

Attention : fetch ne lance pas d'erreur pour les 404 !

C'est un piège courant. fetch() considère qu'un 404 est une réponse valide :

const response = await fetch("https://dummyjson.com/products/9999")
console.log(response.ok)     // false (pas un status 200-299)
console.log(response.status) // 404

Il faut vérifier response.ok et lancer l'erreur nous-mêmes :

if (!response.ok) {
  throw new Error("Erreur " + response.status)
  // → saute directement dans le catch
}

Tableau des status HTTP

Statusresponse.okSignification
200trueOK, tout va bien
201trueCréé avec succès
404falseNon trouvé
500falseErreur serveur

📝 Consigne

Le code gère déjà le try/catch et la vérification de response.ok. Il te suffit de :

  1. Appeler chargerProduit(9999) avec await pour tester la gestion d'erreur

Résultat attendu :

--- Test ID valide ---
Produit : Essence Mascara Lash Princess - 9.99 $
--- Test ID invalide ---
Erreur attrapée : Erreur 404

Observe : Le programme ne plante pas grâce au try/catch. L'erreur est capturée et affichée proprement.

Objectifs

  • Appeler avec ID 9999
  • Utiliser await
  • Produit trouvé
  • Erreur gérée

Lis bien les instructions et lance-toi !

Indices (0/3)

Indice 1 verrouillé
Indice 2 verrouillé
Indice 3 verrouillé