Protokollieren von Stack-Traces in .NET ohne Ausnahmen
Beim Debuggen von Code kann das Drucken des aktuellen Stack-Traces für das Verständnis von unschätzbarem Wert sein Programmablauf und Identifizierung von Problemen. In Situationen, in denen keine Ausnahme aufgetreten ist, funktioniert der Standardansatz der Verwendung von Try-Catch-Blöcken oder der Exception.StackTrace-Eigenschaft jedoch nicht.
Die Lösung
Um den aktuellen Stack-Trace ausnahmslos zu drucken, verwenden Sie die Klasse System.Diagnostics.StackTrace:
System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();
t enthält Informationen über den aktuellen ausführende Methode, ihr Aufrufer usw. bis zum Einstiegspunkt des Programms.
Beispiel
Betrachten Sie den folgenden Code:
public void executeMethod() { logStackTrace(); method(); }
Wenn wirexecuteMethod() aufrufen und dann den Stack-Trace drucken, sehen wir etwa Folgendes:
at executeMethod() in C:\Path\To\MyCode.cs:line 10 at method() in C:\Path\To\MyCode.cs:line 15 at Program.Main() in C:\Path\To\MyMain.cs:line 20
Dies Trace zeigt uns den Aufrufstapel, auch wenn keine Ausnahme aufgetreten ist.
Zusätzliche Ressourcen
Weitere Debugging-Tools finden Sie im System.Diagnostics-Namespace. Protokollierungsframeworks wie NLog, log4net und Enterprise Library bieten umfassende Protokollierungslösungen, einschließlich der Möglichkeit, Stack-Traces zu erfassen.
Das obige ist der detaillierte Inhalt vonWie kann ich einen Stack-Trace in .NET ohne Ausnahme protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!