在沒有異常的情況下在.NET 中記錄堆疊追蹤
偵錯程式碼時,列印目前堆疊追蹤對於理解程式流程和追蹤識別問題。但是,在沒有發生異常的情況下,使用 try-catch 區塊或 Exception.StackTrace 屬性的標準方法將無法運作。
解決方案
要無異常地列印當前堆疊跟踪,請使用System.Diagnostics.StackTrace 類別:
System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();
t 將包含有關當前執行的方法及其呼叫者等的信息,直到程式的入口點。
範例
考慮以下程式碼:
public void executeMethod() { logStackTrace(); method(); }
如果我們呼叫executeMethod()然後列印堆疊追蹤,我們會看到一些東西例如:
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
此追蹤向我們顯示了呼叫堆疊,即使沒有發生異常。
其他資源
用於進一步的調試工具,探索 System.Diagnostics 命名空間。 NLog、log4net 和 Enterprise Library 等日誌框架提供了全面的日誌解決方案,包括擷取堆疊追蹤的能力。
以上是如何在 .NET 中記錄堆疊追蹤而不出現異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!