Dart Academy · Leçon

Exceptions personnalisées et rethrow

Définir des erreurs explicites et les relancer

Leçon 4 sur 413 étapes

Exceptions personnalisées et rethrow est une leçon Dart Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.

Des erreurs qui ont du sens

Les exceptions génériques masquent l’intention. Une exception personnalisée nomme précisément le problème et rend les échecs compréhensibles dans toute votre application. 🏷️

Implémenter une exception

Créez une classe qui implémente Exception. Cela l’identifie comme un type d’erreur pouvant être lancé, immédiatement reconnaissable par Dart et par les lecteurs.

class PaymentException implements Exception {}

Transporter un message

Ajoutez un champ message à votre exception par l’intermédiaire de son constructeur, afin que les gestionnaires puissent comprendre pourquoi elle s’est produite.

class PaymentException implements Exception {
  final String message;
  PaymentException(this.message);
}

Un toString convivial

Remplacez toString afin que l’affichage de l’exception montre une phrase claire plutôt que le seul nom de la classe.

@override
String toString() => 'PaymentException: $message';

Lancer votre propre exception

Lancez une exception personnalisée exactement comme une exception intégrée. Utilisez throw avec une nouvelle instance lorsqu’une règle est enfreinte.

throw PaymentException('Card declined');

Intercepter selon votre type

Interceptez votre exception avec une clause on, comme pour les types intégrés, afin de gérer précisément ce cas.

try {
  pay();
} on PaymentException catch (e) {
  print(e);
}

Parfois, vous ne pouvez pas corriger le problème

Un gestionnaire peut consigner une erreur sans pouvoir la résoudre. Au lieu de l’ignorer, vous pouvez la transmettre avec rethrow.

Le mot-clé rethrow

rethrow relance l’exception actuelle en conservant sa trace d’appels d’origine, afin que les appelants voient où elle a réellement commencé.

catch (e) {
  log(e);
  rethrow;
}

rethrow est préférable à throw e

L’écriture throw e réinitialise la trace d’appels ; rethrow la conserve intacte. Préférez toujours rethrow lorsque vous relancez une exception dans un bloc catch.

Consigner puis transmettre

Un schéma courant consiste à intercepter pour consigner l’échec, puis à le relancer afin qu’une couche supérieure décide comment récupérer.

catch (e) {
  logger.error(e);
  rethrow;
}

Ajouter des champs utiles

Les exceptions personnalisées peuvent contenir des données supplémentaires, comme un code ou une valeur ayant échoué, offrant ainsi davantage de contexte aux gestionnaires.

class ApiException implements Exception {
  final int code;
  ApiException(this.code);
}

Vérification rapide

Pourquoi utiliser rethrow plutôt que throw e dans un bloc catch ?

Récapitulatif

Vous pouvez maintenant créer des exceptions pertinentes qui implémentent Exception, transportent des données et utilisent rethrow pour transmettre proprement les échecs. 🚀

Gratuit pour commencer

Apprends Dart avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Exceptions personnalisées et rethrow » est-elle gratuite ?

Oui — le texte complet de « Exceptions personnalisées et rethrow » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Exceptions personnalisées et rethrow » ?

Définir des erreurs explicites et les relancer Tu pratiques Dart Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Dart Academy ?

Aucune expérience préalable n'est requise. Dart Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Exceptions personnalisées et rethrow » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Dart Academy ?

Oui. Chaque leçon Dart Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. throw, try et catch
  2. Clauses on et types d’exception
  3. finally et nettoyage garanti
  4. Exceptions personnalisées et rethrow
← Retour à Dart Academy