Quelle est la meilleure pratique lors de la création de vos classes d’exception dans une solution .NET: Dériver de System.Exception
ou de System.ApplicationException
?
Réponses
Trop de publicités?Selon Jeffery Richter dans le livre Framework Design Guidelines:
System.ApplicationException
est une classe qui ne devrait pas faire partie du framework .NET.
Il était censé avoir une signification en ce sens que vous pourriez potentiellement capturer "toutes" les exceptions d'application, mais le modèle n'a pas été suivi et n'a donc aucune valeur.
Même MSDN dit maintenant à ignorer ApplicationException:
Si vous êtes à la conception d'une application qui a besoin de créer sa propre des exceptions, il est conseillé de tirer personnalisé des exceptions à l'Exception classe. Il a été à l'origine pensé que personnalisé exceptions doivent dériver de le ApplicationException classe; cependant, dans la pratique, cela n'a pas été trouvé à ajouter une valeur significative. Pour plus d'informations, consultez les Meilleures Pratiques pour la gestion des Exceptions.
http://msdn.microsoft.com/en-us/library/system.applicationexception.aspx
ApplicationException
considéré comme inutile - un argument fort et critique.
Les auteurs du cadre jugent eux-mêmes ApplicationException sans valeur:
http://blogs.msdn.com/kcwalina/archive/2006/06/23/644822.aspx
avec un bon suivi ici:
http://blogs.msdn.com/kcwalina/archive/2006/07/05/657268.aspx
Dans le doute, j'ai suivi leur livre Cadre des lignes Directrices de Conception.
http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756
Le sujet du blog est discuté plus loin.
rp
Oui, Konrad a raison.
Sur une note connexe: une autre chose jugée utile (ou "meilleure pratique") mais qui ne l’est vraiment pas est la mise en œuvre de ICloneable .