Quelqu'un peut-il perdre une lumière sur les avantages et les inconvénients de lancer des exceptions personnalisées (qui hériter de System.Exception) ou de la manière appropriée de les utiliser? Je suis déjà au courant du moment où / quand de ne pas lancer d'exception, mais je cherche des conseils sur la manière de créer mes propres exceptions personnalisées. P>
6 Réponses :
Les exceptions personnalisées vous permettent de fournir des exceptions claires et significatives, ce qui permet de rendre votre bibliothèque plus utilisable, à condition que vous utilisiez les exceptions existantes chaque fois qu'il est approprié. P>
Créer une exception personnalisée à tout moment, vous devez soulever une exception qui ne correspond pas directement dans le modèle d'exception du framework. P>
Utilisez vos propres exceptions pour signaler des erreurs spécifiques à votre application / domaine. L'avantage est que vos blocs de capture peuvent filtrer les exceptions appropriées et agir à ce sujet. Utilisez des exceptions standard spécifiques pour tout le reste. p>
J'ai récemment écrit une entrée de blog entière sur ce sujet particulier: p>
Le résumé de base si c'est ... p>
Vous ne devez créer une nouvelle exception que si vous attendez des développeurs de prendre des mesures correctives pour le problème ou de se connecter au débogage post mortem. P> blockQuote>
Il y a en fait une grande série d'articles MSDN sur ce sujet: P>
Ce sont tous des excellents messages. Jusqu'à présent, je suis tout à fait d'accord avec Brian Rasmussen - Créez des exceptions personnalisées lorsque vous souhaitez gérer différents types d'exceptions spécifiques.
Peut-être qu'un exemple aidera. Ceci est un exemple artificiel, et peut être utile ou non dans le code quotidien. Supposons que vous ayez une classe responsable de l'authentification d'un utilisateur. Cette classe, en plus de l'authentification d'un utilisateur, a un mécanisme de blocage pour verrouiller un utilisateur après plusieurs tentatives infructueuses. Dans un tel cas, vous pouvez concevoir dans le cadre des exceptions personnalisées de la classe deux: Par exemple: p> à nouveau, un exemple de réveillé. Mais j'espère que cela montre comment et pourquoi vous voudriez créer des exceptions personnalisées. Dans ce cas, l'utilisateur de la classe authentificationFaileDException code> et
userLockedoutException code>. Votre méthode code> authogédictuser code> retournerait alors simplement sans lancer si l'utilisateur a été authentifié avec succès, lancez
authentificationFaileDException code> si l'utilisateur a échoué d'authentification ou lancez
userLockedoutException code> si le l'utilisateur a été verrouillé. P>
authprovider code> gère chaque exception personnalisée de manière différente. Si la méthode code> authentifiant code> avait simplement lancé
exception code>, il n'y aurait aucun moyen de différencier les différentes raisons pourquoi em> l'exception a été lancée. p> p>
Pourquoi créer des exceptions personnalisées?
Pour les avantages / contre d'utiliser des exceptions, voir Comment lancer une bonne exception
Facteurs à prendre en compte lors de l'utilisation de coutume Exceptions
de
Création et lancement d'exceptions P>
Dupe: Stackoverflow.com/Questtions/417428/Why-Create-Custom- SAUFSI ONS
Je n'appellerais pas cela une dupe, fermée, mais pas tout à fait dans mon livre, peut-être que je n'étais tout simplement pas assez clair dans ma question.
C'est certainement un mot mieux formulé que le double lien. Je voterai pour rouvrir s'il ferme.