Exceptions personnalisées et rethrow
Définir des erreurs explicites et les relancer
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. 🚀
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
- throw, try et catch
- Clauses on et types d’exception
- finally et nettoyage garanti
- Exceptions personnalisées et rethrow