2016-08-04 32 views
1

Ich entwickle eine Web-Anwendung in C#, und ich habe einen speziellen Ausnahme-Typ, dass ich ein komplettes Protokoll von seinen Ereignissen haben muss, und natürlich werde ich damit umgehen, um eine spezielle Nachricht an den Benutzer zu zeigen oder so.Ist es eine gute Vorgehensweise, Fehler im Exception-Konstruktor zu protokollieren?

Die Frage ist, ist es eine gute Praxis, Protokollierungscodes innerhalb Exceptions Konstruktor zu schreiben? Ich frage das, weil ich vorher noch nichts Ähnliches gesehen habe.

Vielen Dank im Voraus

+3

Nein; Konstruktoren sollten keine Nebenwirkungen haben. – SLaks

+3

Ich würde nicht annehmen, da die Protokollierung selbst eine Ausnahme auslösen kann, kann es sehr verworren –

+0

Die Ausnahme ist die letzte Verteidigungslinie, um Probleme zu behandeln. Sobald Sie es öffnen, um Code, der die Möglichkeit hat, zu brechen, besiegt diese Art den Zweck der Ausnahme. Am besten, sie getrennt zu halten. –

Antwort

3

sollte eine kurze und eine gute Antwort sein: nein, Sie nicht diesen Weg gehen sollten weil Sie Ihren Code mit einer guten Trennung von Bereichen entwickeln wollen: Ausnahmebehandlung ist nicht angemeldet haben, Daher kann die Protokollierung nicht Teil der Erstellung einer Ausnahme sein.

Wenn diese Ausnahme nicht von Ihrem Code behandelt wird, können Sie einen Exception-Handler für die letzte Chance wie das Ereignis AppDomain.UnhandledException verwenden und dort anmelden.