C#在不拋出異常的情況下,獲取棧軌跡

      

在程序中經常想捕獲一些東西,有時候想捕獲的不是異常,而是系統的某些操作。這個時候就需要捕獲這個事件,並瞭解他的源頭。c#提供了棧軌跡的概念。

          using (StreamWriter sw = new StreamWriter(path + "//StackTrace.txt", true, Encoding.Default))
                {
                                      System.Diagnostics.StackTrace ss = new System.Diagnostics.StackTrace(true);
                    for (int i = 0; i < ss.FrameCount; i++)
                    {
                        Type t = ss.GetFrame(i).GetMethod().DeclaringType;
                        if (ss.GetFrame(i).GetFileLineNumber() != 0)
                        {
                            sw.WriteLine(t.FullName + " " + ss.GetFrame(i).GetFileLineNumber());
                        }
                    }
                 }

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章