Quelles sont les meilleures pratiques pour la création de mon propre exception?

StackOverflow https://stackoverflow.com/questions/54851

  •  09-06-2019
  •  | 
  •  

Question

Dans un suivi à un question précédente concernant les exceptions, ce sont les meilleures pratiques pour la création d'une exception personnalisée dans .NET?

Plus précisément si vous héritez de Système.Exception, Système.ApplicationException ou une autre base de l'exception?

Était-ce utile?

La solution

Hériter de System.Exception. System.ApplicationException est inutile et les lignes directrices de conception de dire "Ne pas jeter ou de dériver à partir de System.ApplicationException."

Voir http://blogs.msdn.com/kcwalina/archive/2006/06/23/644822.aspx

Autres conseils

Dans le C# IDE, de type "exception" et de cliquer sur l'ONGLET.Cela permettra d'élargir pour vous lancer dans l'écriture d'un nouveau type d'exception.Il y a des commentaires munies de liens vers une discussion d'exception pratiques.

Personnellement, je suis un grand fan de la création de beaucoup de petites classes, qui s'étend à l'exception des types.Par exemple, dans l'écriture de la classe Foo, je peux choisir entre:

  1. throw new Exception("Bar happened in Foo");
  2. throw new FooException("Bar happened");
  3. throw new FooBarException();

class FooException : Exception 
{
    public FooException(string message) ... 
}

et

class FooBarException : FooException 
{
    public FooBarException() 
        : base ("Bar happened") 
    {
    }
}

Je préfère la 3ème option, parce que je le vois comme un OO solution.

Il y a un extrait de code pour cela.L'utiliser.De Plus, vérifiez votre code d'analyse par la suite;l'extrait de feuilles d'un des constructeurs à mettre en œuvre.

Je pense que la chose la plus importante à retenir lorsque vous traitez avec des exceptions à tout niveau (personnalisation, lancer, attraper) est que les exceptions ne sont que pour des conditions exceptionnelles.

La base de l'exception de tous les autres exceptions héritent de Système.Exception, et c'est ce que vous devrait hériter, à moins bien sûr que vous avez une utilisation pour des choses comme, par exemple, par défaut les messages de façon plus spécifique exception.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top