Mini-JS e_Exercices
Exercices sur la gestion des erreurs
Ces exercices permettent de mettre en application les notions
vues dans ce chapitre : interception d’erreurs synchrones,
exécution garantie avec finally, et gestion des
erreurs dans du code asynchrone avec promesses ou
async/await.
Exercice 1 — Erreur simple
Écris un code qui tente d’afficher une variable non définie
dans un bloc try. Intercepte l’erreur dans le
catch et affiche un message personnalisé.
Exercice 2 — Division par zéro
Crée une fonction divide(a, b) qui lève une erreur
si b vaut zéro. Utilise throw pour
générer l’erreur et try...catch pour la gérer
proprement.
Exercice 3 — Nettoyage garanti
Écris une fonction qui ouvre une ressource fictive (par exemple
affiche « Ressource ouverte ») puis lève une erreur volontaire.
Assure-toi que la ressource est toujours « fermée » grâce à un
bloc finally.
Exercice 4 — Lecture de tableau
Crée une fonction qui tente d’accéder à un élément d’un
tableau. Si l’indice est invalide (trop grand ou négatif), lève
une erreur et gère-la avec try...catch.
Exercice 5 — Promesse rejetée
Écris une promesse qui se rejette avec une erreur après deux
secondes. Utilise .catch() pour intercepter et
afficher le message d’erreur.
Exercice 6 — async/await
Écris une fonction fetchData() simulant une
requête asynchrone avec setTimeout. Si l’URL donnée
n’est pas "ok", la fonction lève une erreur. Gère
l’erreur avec try...catch dans une fonction marquée
async.
Exercice 7 — Message utilisateur
Écris un code qui tente de convertir une chaîne JSON invalide
avec JSON.parse. Utilise try...catch
pour afficher un message clair destiné à l’utilisateur (« Le
format des données est incorrect »).
Exercice 8 — Centralisation
Écris une fonction handleError(error) qui se
charge d’afficher toutes les erreurs de manière uniforme.
Utilise-la dans au moins deux blocs catch
différents.
Exercice 9 — Fallback
Crée une fonction getUserData() qui simule une
requête serveur. En cas d’échec, elle doit renvoyer un objet par
défaut (par exemple { name: "Inconnu" }). Utilise
async/await et try...catch.
Exercice 10 — Projet de synthèse
Construis un petit programme qui :
- lit un nombre fourni par l’utilisateur,
- tente de diviser 100 par ce nombre,
- gère le cas d’une saisie invalide ou d’un zéro avec
throwettry...catch,
- affiche toujours « Programme terminé » grâce à un
finally.