Environment.StackTrace プロパティ
現在のスタック トレース情報を取得します。
Public Shared ReadOnly Property StackTrace As String
[C#]
public static string StackTrace {get;}
[C++]
public: __property static String* get_StackTrace();
[JScript]
public static function get StackTrace() : String;
プロパティ値
スタック トレース情報を格納している文字列。この値は、 String.Empty の場合もあります。
例外
例外の種類 | 条件 |
---|---|
ArgumentOutOfRangeException | 要求されたスタック トレース情報が指定範囲外です。 |
解説
StackTrace プロパティは、メソッド呼び出しを逆発生順に並べた一覧です。つまり、最近のメソッド呼び出しが最初に記述され、スタック上の各メソッド呼び出しに対して 1 行のスタック トレース情報が示されます。ただし、 StackTrace プロパティでは、最適化処理中に実行されたコード変換のために、予期したほど多くのメソッド呼び出しが報告されない場合があります。
各メソッド呼び出しに対するスタック トレース情報の書式は、次のとおりです。
"at FullClassName. MethodName (MethodParams) in FileName:line LineNumber "リテラル "at" の手前には 3 つの空白が置かれます。デバッグ記号が使用できない場合、リテラルの "in" と ":line" は無視されます。 FullClassName 、 MethodName 、 MethodParms 、 FileName 、 LineNumber の各プレースホルダは、次のように、定義された実際の値で置き換えられます。
FullClassName
名前空間を含む、クラスのフルネーム。
MethodName
メソッドの名前。
MethodParms
パラメータの型と名前の組み合わせのリスト。それぞれの組み合わせはコンマ (,) で区切られます。 MethodName にパラメータが渡されない場合は、この情報は省略されます。
FileName
MethodName メソッドが宣言されているソース ファイルの名前。デバッグ記号が使用できない場合、この情報は無視されます。
LineNumber
コールスタック上にある命令を示す MethodName のソース コードを格納している FileName 内の行の番号。デバッグ記号が使用できない場合、この情報は無視されます。
使用例
' Sample for the Environment.StackTrace property
Imports System
Class Sample
Public Shared Sub Main()
Console.WriteLine()
Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace)
End Sub 'Main
End Class 'Sample
'
'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()'
'
[C#]
// 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()'
*/
[C++]
// Sample for the Environment::StackTrace property
#using <mscorlib.dll>
using namespace System;
int main() {
Console::WriteLine();
Console::WriteLine(S"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()'
*/
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard
.NET Framework セキュリティ:
- EnvironmentPermission (アクセス許可が保護するリソースへのフル アクセス) PermissionState.Unrestricted (関連する列挙体)