Kann ich etwas Text in den Stack-Trace werfen?
Meine Anwendung hat bereits die ausgelösten Ausnahmen im Griff. Aber ich hätte gerne mehr Informationen über einige Methoden (Parameter).
Die Idee war, etwas wie
zu machen %Vor%Ich weiß, das ist nicht cool, aber ist es möglich?
Erstellen Sie die Ausnahme und fügen Sie die Parameter in die Datenwörterbuch-Eigenschaft ein. Dann werfen Sie die Ausnahme ...
Nur um @ ErikHs ausgezeichnete Antwort hinzuzufügen:
Wenn Sie zusätzlich zur Eigenschaft Data
zusätzliche Daten benötigen, die in der Ausnahmekette verfügbar sind, können Sie dies mithilfe einer benutzerdefinierten Ausnahme tun. Zusätzlich zu den Meta-Informationen, die ein benutzerdefinierter Typ bereitstellen kann (ein CommunicationException
könnte ein Problem mit I / O bedeuten, ein InvalidStateException
könnte bedeuten, dass das Programm einen ungültigen Status gefunden hat usw.) können Sie zusätzliche Informationen hinzufügen die Ausnahme in Form von benutzerdefinierten Feldern. Benutzerdefinierte Felder sind besonders nützlich, wenn Sie Typensicherheit benötigen, die die Data
-Eigenschaft nicht bietet.
Per Definition ist der Stack-Trace eine Ausgabe der aktiven Stack-Frames am aktuellen Ausführungspunkt in einem Programm, auf die normalerweise über eine Exception zugegriffen wird.
@David Yaw gab Ihnen den richtigen Weg, um zusätzliche Informationen zu einem Stack-Trace hinzuzufügen, da dieser den Exception-Stack aufbläht. Um es anders auszudrücken, sollten Sie Ihre benutzerdefinierten Daten nur dann der Stack-Ablaufverfolgung hinzufügen, wenn es sich um eine Ausnahme handelt.
Erstellen Sie entweder eine zentral zugängliche List-Auflistung, in der Protokollierungsdaten gespeichert werden, oder verwenden Sie das richtige try / catch mit Ausnahme-Sprudeln, wie von David empfohlen.
zum Beispiel.
%Vor%Tags und Links c# exception stack-trace