Welche Best Practices gibt es zum Erstellen meiner eigenen benutzerdefinierten Ausnahme?
Frage
Im Nachgang zu a vorherige Frage Was sind in Bezug auf Ausnahmen Best Practices zum Erstellen einer benutzerdefinierten Ausnahme in .NET?
Genauer gesagt, sollten Sie von System.Exception, System.ApplicationException oder einer anderen Basisausnahme erben?
Lösung
Vererben von System.Exception
. System.ApplicationException
ist nutzlos, und die Design-Richtlinien sagen „ Nicht werfen oder aus System.ApplicationException
abzuleiten.“
Siehe http://blogs.msdn.com/ kcwalina / Archiv / 2006/06/23 / 644822.aspx
Andere Tipps
In der C # IDE, Typ 'Ausnahme' und drücken Sie TAB. Dies wird erweitern, um Sie in das Schreiben eines neuen Ausnahmetyp loszulegen. Es gibt Kommentare withs Links zu einigen Diskussionen Ausnahme Praktiken.
Ich persönlich bin ein großer Fan von vielen kleinen Klassen zu schaffen, um das zu Ausnahmetypen erweitert. Um zum Beispiel der Foo-Klasse in schriftlicher Form, kann ich wählen zwischen:
-
throw new Exception("Bar happened in Foo");
-
throw new FooException("Bar happened");
-
throw new FooBarException();
Dabei steht
class FooException : Exception
{
public FooException(string message) ...
}
und
class FooBarException : FooException
{
public FooBarException()
: base ("Bar happened")
{
}
}
ziehe ich die dritte Option, weil ich es sehe wie eine OO-Lösung zu sein.
Es ist ein Code-Snippet für sie. Verwende das. Plus, überprüfen Sie die Codeanalyse danach; das Snippet verlässt einer der Konstrukteure sollten Sie implementieren.
Ich denke, die wichtigste Sache zu erinnern, wenn sie mit Ausnahmen auf jeder Ebene (was Brauch, Werfen, Fangen) zu tun ist, dass Ausnahmen nur für Ausnahmebedingungen sind.
Die Basis Ausnahme von dem alle anderen Ausnahmen erben von System.Exception ist, und das ist, was sollten Sie erben, außer natürlich, Sie eine Verwendung für Dinge wie, sagen wir, Standardmeldungen einer spezifischeren Ausnahme.