Environment.StackTrace 属性
获取当前的堆栈跟踪信息。
**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Shared ReadOnly Property StackTrace As String
用法
Dim value As String
value = Environment.StackTrace
public static string StackTrace { get; }
public:
static property String^ StackTrace {
String^ get ();
}
/** @property */
public static String get_StackTrace ()
public static function get StackTrace () : String
属性值
包含堆栈跟踪信息的字符串。此值可为 String.Empty。
异常
异常类型 | 条件 |
---|---|
请求的堆栈跟踪信息超出范围。 |
备注
StackTrace 属性以逆向时间顺序列出了方法调用,即首先描述最近的方法调用,然后为堆栈上的每个方法调用都列出一行堆栈跟踪信息。但是,由于优化期间发生的代码转换,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
FileName 中的行号,该行包含来自 MethodName 并用作调用堆栈上的指令的源代码。如果调试符号不可用,则省略此信息。
示例
下面的代码示例演示了 StackTrace 属性。
' 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()'
'
// 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
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
import System.*;
class Sample
{
public static void main(String[] args)
{
Console.WriteLine();
Console.WriteLine("StackTrace: '{0}'", Environment.get_StackTrace());
} //main
} //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(String args[])'
*/
.NET Framework 安全性
- EnvironmentPermission 用于对受权限保护的资源进行完全访问。关联的枚举:PermissionState.Unrestricted
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0