10
votes

.Net lancer des exceptions personnalisées

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.


3 commentaires

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.


6 Réponses :


1
votes

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é.

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.


0 commentaires

4
votes

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.


0 commentaires

1
votes

J'ai récemment écrit une entrée de blog entière sur ce sujet particulier:


0 commentaires


9
votes

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: authentificationFaileDException et userLockedoutException . Votre méthode authogédictuser retournerait alors simplement sans lancer si l'utilisateur a été authentifié avec succès, lancez authentificationFaileDException si l'utilisateur a échoué d'authentification ou lancez userLockedoutException si le l'utilisateur a été verrouillé.

Par exemple: xxx

à 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 authprovider gère chaque exception personnalisée de manière différente. Si la méthode authentifiant avait simplement lancé exception , il n'y aurait aucun moyen de différencier les différentes raisons pourquoi l'exception a été lancée.


0 commentaires