Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 10 · Exercice de TD

Des messages pour l'utilisateur

Dialoguer avec un serveur : fetch · niveau 2

Énoncé

Les messages techniques (« fetch failed », « erreur HTTP 500 ») n'ont pas leur place sous les yeux d'un client. Écrire messageUtilisateur(e), qui renvoie, pour une erreur levée par obtenirJson : « Le serveur met trop de temps à répondre. Réessayez dans un instant. » pour un délai dépassé ; « Connexion impossible : vérifiez votre accès à Internet. » pour une erreur réseau ; « Ce livre n’existe pas ou n’est plus au catalogue. » pour un 404 ; « Le serveur rencontre un problème. Réessayez plus tard. » pour un statut 5xx. La tester sur quatre requêtes.

Corrigé


export function messageUtilisateur(e) {
  if (e.name === "TimeoutError") return "Le serveur met trop de temps à répondre. Réessayez dans un instant.";
  if (e.name === "TypeError") return "Connexion impossible : vérifiez votre accès à Internet.";
  if (e.statut === 404) return "Ce livre n’existe pas ou n’est plus au catalogue.";
  if (e.statut >= 500) return "Le serveur rencontre un problème. Réessayez plus tard.";
  return `Erreur inattendue : ${e.message}`;
}

Testée (exercices/ex4-messages.mjs) sur un ISBN inconnu, une panne, un délai de 2 s borné à 1 s, et un port sans serveur, elle donne les quatre messages dans cet ordre. On teste le nom de l'erreur et le statut, jamais le texte du message, qui change d'un navigateur à l'autre.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →