0%
Exceptions et gestion des erreurs — Chapitre 13

Chapitre 13 — Exceptions et gestion des erreurs

Partie 1A — Apprendre Dart · Chapitre 13 sur 62 · 5 h

Chapitre 13 — Exceptions et gestion des erreurs

Niveau : débutant / intermédiaire Durée estimée : 5 h Pré-requis : chapitre 12 — Le null safety Ce que vous saurez faire à la fin : écrire un programme Dart qui ne s'arrête jamais brutalement devant une donnée invalide, en signalant les problèmes avec throw et en les rattrapant au bon endroit avec try / on / catch / finally.


13.0 — Objectifs du chapitre

À la fin de ce chapitre, vous serez capable de :

  • expliquer ce qui se passe, étape par étape, quand un programme Dart plante ;
  • distinguer une Error (faute du programmeur) d'une Exception (accident prévisible) ;
  • lire une trace d'erreur de la VM Dart sans paniquer ;
  • protéger un morceau de code avec try ;
  • rattraper un problème avec catch ;
  • récupérer l'objet lancé avec catch (e) et la pile d'appels avec catch (e, s) ;
  • filtrer un type d'exception précis avec on ;
  • enchaîner plusieurs clauses on dans le bon ordre ;
  • combiner on et catch avec on ... catch (e) ;
  • garantir l'exécution d'un nettoyage avec finally ;
  • décrire précisément l'ordre d'exécution de try, catch et finally ;
  • signaler vous-même un problème avec throw ;
  • faire remonter une exception déjà attrapée avec rethrow ;
  • créer vos propres classes d'exception métier pour votre jeu ;
  • comprendre et provoquer une FormatException ;
  • expliquer pourquoi int.parse() échoue et comment le message est construit ;
  • remplacer une exception par un test grâce à int.tryParse() et double.tryParse() ;
  • valider une saisie utilisateur complète, du texte brut à la valeur exploitable ;
  • utiliser ArgumentError et assert pour protéger vos propres fonctions ;
  • articuler exceptions et null safety ;
  • décider, dans un vrai projet, quand attraper une exception et quand laisser le programme planter.

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !