Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Initialisiert ein neues StackFrame-Objekt, das nur den angegebenen Dateinamen und die angegebene Zeilen- und Spaltennummer enthält.
Namespace: System.Diagnostics
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Sub New ( _
fileName As String, _
lineNumber As Integer, _
colNumber As Integer _
)
'Usage
Dim fileName As String
Dim lineNumber As Integer
Dim colNumber As Integer
Dim instance As New StackFrame(fileName, lineNumber, colNumber)
public StackFrame (
string fileName,
int lineNumber,
int colNumber
)
public:
StackFrame (
String^ fileName,
int lineNumber,
int colNumber
)
public StackFrame (
String fileName,
int lineNumber,
int colNumber
)
public function StackFrame (
fileName : String,
lineNumber : int,
colNumber : int
)
Parameter
- fileName
Der angegebene Dateiname.
- lineNumber
Die Zeilennummer in der angegebenen Datei.
- colNumber
Die Spaltennummer in der angegebenen Datei.
Hinweise
Verwenden Sie diesen Konstruktor, wenn Sie die Zeilenzuordnungslogik des Debuggers nicht verwenden möchten.
Beispiel
Im folgenden Codebeispiel wird eine Verwendungsmöglichkeit eines StackFrame-Konstruktors veranschaulicht.
Try
Dim [nestedClass] As New ClassLevel5()
[nestedClass].Level5Method()
Catch e As Exception
Console.WriteLine(" Level4Method exception handler")
' Build a stack trace from a dummy stack frame.
' Explicitly specify the source file name, line number
' and column number.
Dim st As New StackTrace(New StackFrame("source.cs", 79, 24))
Console.WriteLine(" Stack trace with dummy stack frame: {0}", _
st.ToString())
' Access the StackFrames explicitly to display the file
' name, line number and column number properties.
' StackTrace.ToString only includes the method name.
Dim i As Integer
For i = 0 To st.FrameCount - 1
Dim sf As StackFrame = st.GetFrame(i)
Console.WriteLine(" File: {0}", sf.GetFileName())
Console.WriteLine(" Line Number: {0}", _
sf.GetFileLineNumber())
Console.WriteLine(" Column Number: {0}", _
sf.GetFileColumnNumber())
Next i
Console.WriteLine()
Console.WriteLine(" ... throwing exception to next level ...")
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
Throw e
End Try
End Sub 'Level4Method
try
{
ClassLevel5 nestedClass = new ClassLevel5();
nestedClass.Level5Method();
}
catch (Exception e)
{
Console.WriteLine(" Level4Method exception handler");
// Build a stack trace from a dummy stack frame.
// Explicitly specify the source file name, line number
// and column number.
StackTrace st = new StackTrace(new StackFrame("source.cs", 79, 24));
Console.WriteLine(" Stack trace with dummy stack frame: {0}",
st.ToString());
// Access the StackFrames explicitly to display the file
// name, line number and column number properties.
// StackTrace.ToString only includes the method name.
for(int i =0; i< st.FrameCount; i++ )
{
StackFrame sf = st.GetFrame(i);
Console.WriteLine(" File: {0}", sf.GetFileName());
Console.WriteLine(" Line Number: {0}",
sf.GetFileLineNumber());
Console.WriteLine(" Column Number: {0}",
sf.GetFileColumnNumber());
}
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level ...");
Console.WriteLine("-------------------------------------------------\n");
throw e;
}
try
{
ClassLevel5^ nestedClass = gcnew ClassLevel5;
nestedClass->Level5Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " Level4Method exception handler" );
// Build a stack trace from a dummy stack frame.
// Explicitly specify the source file name, line number
// and column number.
StackTrace^ st = gcnew StackTrace( gcnew StackFrame( "source.cs",79,24 ) );
Console::WriteLine( " Stack trace with dummy stack frame: {0}", st->ToString() );
// Access the StackFrames explicitly to display the file
// name, line number and column number properties.
// StackTrace.ToString only includes the method name.
for ( int i = 0; i < st->FrameCount; i++ )
{
StackFrame^ sf = st->GetFrame( i );
Console::WriteLine( " File: {0}", sf->GetFileName() );
Console::WriteLine( " Line Number: {0}", sf->GetFileLineNumber().ToString() );
Console::WriteLine( " Column Number: {0}", sf->GetFileColumnNumber().ToString() );
}
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
try {
ClassLevel5 nestedClass = new ClassLevel5();
nestedClass.Level5Method();
}
catch (System.Exception e) {
Console.WriteLine(" Level4Method exception handler");
// Build a stack trace from a dummy stack frame.
// Explicitly specify the source file name, line number
// and column number.
StackTrace st = new StackTrace(new StackFrame("source.jsl", 79, 24));
Console.WriteLine(" Stack trace with dummy stack frame: {0}",
st.ToString());
// Access the StackFrames explicitly to display the file
// name, line number and column number properties.
// StackTrace.ToString only includes the method name.
for (int i = 0; i < st.get_FrameCount(); i++) {
StackFrame sf = st.GetFrame(i);
Console.WriteLine(" File: {0}", sf.GetFileName());
Console.WriteLine(" Line Number: {0}",
(Int32)sf.GetFileLineNumber());
Console.WriteLine(" Column Number: {0}",
(Int32)sf.GetFileColumnNumber());
}
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level...");
Console.WriteLine("---------------------------------------------"
+ "----\n");
throw e;
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
StackFrame-Klasse
StackFrame-Member
System.Diagnostics-Namespace