Environment.StackTrace 屬性

定義

取得目前的堆疊追蹤資訊。

public:
 static property System::String ^ StackTrace { System::String ^ get(); };
public static string StackTrace { get; }
static member StackTrace : string
Public Shared ReadOnly Property StackTrace As String

屬性值

含有堆疊追蹤資訊的字串。 這個值可以是 Empty

範例

下列範例示範 StackTrace 屬性。

// Sample for the Environment::StackTrace property
using namespace System;
int main()
{
   Console::WriteLine();
   Console::WriteLine( "StackTrace: ' {0}'", Environment::StackTrace );
}

/*
This example produces the following results:

StackTrace: '   at System::Environment::GetStackTrace(Exception e)
at System::Environment::GetStackTrace(Exception e)
at System::Environment::get_StackTrace()
at Sample::Main()'
*/
// Sample for the Environment.StackTrace property
using System;

class Sample
{
    public static void Main()
    {
    Console.WriteLine();
    Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace);
    }
}
/*
This example produces the following results:

StackTrace: '   at System.Environment.GetStackTrace(Exception e)
   at System.Environment.GetStackTrace(Exception e)
   at System.Environment.get_StackTrace()
   at Sample.Main()'
*/
// Sample for the Environment.StackTrace property
open System

printfn $"\nStackTrace: '{Environment.StackTrace}'"

// This example produces the following results:
//     StackTrace: '   at System.Environment.GetStackTrace(Exception e)
//        at System.Environment.GetStackTrace(Exception e)
//        at System.Environment.get_StackTrace()
//        at <StartupCode$fs>.$Stacktrace.main@()'
' Sample for the Environment.StackTrace property
Class Sample
   Public Shared Sub Main()
      Console.WriteLine()
      Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace)
   End Sub
End Class
'
'This example produces the following results:
'
'StackTrace: '   at System.Environment.GetStackTrace(Exception e)
'   at System.Environment.GetStackTrace(Exception e)
'   at System.Environment.get_StackTrace()
'   at Sample.Main()'
'

備註

屬性 StackTrace 會以反向時間順序列出方法呼叫,也就是第一次描述最新的方法呼叫,而堆疊上每個方法呼叫都會列出一行堆疊追蹤資訊。 不過,由於優化期間發生的程式碼轉換, StackTrace 屬性可能不會如預期般回報許多方法呼叫。

注意

如需依類別排列堆疊追蹤資訊的階層式檢視,請使用 類別 StackTrace

屬性會 StackTrace 格式化每個方法呼叫的堆疊追蹤資訊,如下所示:

「at FullClassNameMethodNameMethodParams在 :line LineNumber 中 () 」 FileName

常值 「at」 前面有三個空格,如果偵錯符號無法使用,則會省略開頭為 「in」 的整個子字串。 預留位置、 FullClassNameMethodNameMethodParamsFileNameLineNumber 會以實際值取代,並定義如下:

FullClassName 類別的完整名稱,包括 命名空間。

MethodName 方法的名稱。

MethodParams 參數類型/名稱組的清單。 每個配對都會以逗號 (「,」) 分隔。 如果沒有 MethodName 參數,則會省略這項資訊。

FileName 宣告方法的來源 MethodName 檔案名。 如果無法使用偵錯符號,則會省略這項資訊。

LineNumberFileName 包含原始程式碼 MethodName 的行號,用於呼叫堆疊上的指令。 如果無法使用偵錯符號,則會省略這項資訊。

字串 Environment.NewLine 會終止堆疊追蹤的每一行。

適用於