Freigeben über


StackFrame-Konstruktor (Int32)

Initialisiert ein neues StackFrame-Objekt, das einem Rahmen über dem aktuellen Stapelrahmen entspricht.

Namespace: System.Diagnostics
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Sub New ( _
    skipFrames As Integer _
)
'Usage
Dim skipFrames As Integer

Dim instance As New StackFrame(skipFrames)
public StackFrame (
    int skipFrames
)
public:
StackFrame (
    int skipFrames
)
public StackFrame (
    int skipFrames
)
public function StackFrame (
    skipFrames : int
)

Parameter

  • skipFrames
    Die Anzahl der zu überspringenden Stapelrahmen.

Beispiel

Im folgenden Codebeispiel wird eine Verwendungsmöglichkeit eines StackFrame-Konstruktors veranschaulicht.

Public Sub InternalMethod()
   Try
      Dim nestedClass As New ClassLevel2
      nestedClass.Level2Method()
   Catch e As Exception
      Console.WriteLine(" InternalMethod exception handler")
      
      ' Build a stack trace from one frame, skipping the 
      ' current frame and using the next frame.  By default,
      ' file and line information are not displayed.
      Dim st As New StackTrace(New StackFrame(1))
      Console.WriteLine(" Stack trace for next level frame: {0}", _
         st.ToString())
      Console.WriteLine(" Stack frame for next level: ")
      Console.WriteLine("   {0}", st.GetFrame(0).ToString())
      
      Console.WriteLine(" Line Number: {0}", _
         st.GetFrame(0).GetFileLineNumber().ToString())
      
      Console.WriteLine()
      Console.WriteLine("   ... throwing exception to next level ...")
      Console.WriteLine("-------------------------------------------------")
      Console.WriteLine()
      Throw e
   End Try
End Sub 'InternalMethod
public void InternalMethod()
{
   try
   {
      ClassLevel2 nestedClass = new ClassLevel2();
      nestedClass.Level2Method();
   }
   catch (Exception e)
   {
      Console.WriteLine(" InternalMethod exception handler");

      // Build a stack trace from one frame, skipping the
      // current frame and using the next frame.  By
      // default, file and line information are not displayed.
      StackTrace st = new StackTrace(new StackFrame(1));
      Console.WriteLine(" Stack trace for next level frame: {0}",
         st.ToString());
      Console.WriteLine(" Stack frame for next level: ");
      Console.WriteLine("   {0}", st.GetFrame(0).ToString());

      Console.WriteLine(" Line Number: {0}",
         st.GetFrame(0).GetFileLineNumber().ToString());

      Console.WriteLine();
      Console.WriteLine("   ... throwing exception to next level ...");
      Console.WriteLine("-------------------------------------------------\n");
      throw e;
   }
}
void InternalMethod()
{
   try
   {
      ClassLevel2^ nestedClass = gcnew ClassLevel2;
      nestedClass->Level2Method();
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( " InternalMethod exception handler" );
      
      // Build a stack trace from one frame, skipping the
      // current frame and using the next frame.  By
      // default, file and line information are not displayed.
      StackTrace^ st = gcnew StackTrace( gcnew StackFrame( 1 ) );
      Console::WriteLine( " Stack trace for next level frame: {0}", st->ToString() );
      Console::WriteLine( " Stack frame for next level: " );
      Console::WriteLine( "   {0}", st->GetFrame( 0 )->ToString() );
      Console::WriteLine( " Line Number: {0}", st->GetFrame( 0 )->GetFileLineNumber().ToString() );
      Console::WriteLine();
      Console::WriteLine( "   ... throwing exception to next level ..." );
      Console::WriteLine( "-------------------------------------------------\n" );
      throw e;
   }

}
public void InternalMethod() throws System.Exception
{
    try {
        ClassLevel2 nestedClass = new ClassLevel2();
        nestedClass.Level2Method();
    }
    catch (System.Exception e) {
        Console.WriteLine(" InternalMethod exception handler");

        // Build a stack trace from one frame, skipping the
        // current frame and using the next frame.  By
        // default, file and line information are not displayed.

        StackTrace st = new StackTrace(new StackFrame(1));
        Console.WriteLine(" Stack trace for next level frame: {0}", 
            st.ToString());
        Console.WriteLine(" Stack frame for next level: ");
        Console.WriteLine("   {0}", st.GetFrame(0).ToString());
        Console.WriteLine(" Line Number: {0}", 
            Convert.ToString(st.GetFrame(0).GetFileLineNumber()));
        Console.WriteLine();
        Console.WriteLine(" ... throwing exception to next level...");
        Console.WriteLine("-------------------------------------------"
            + "------\n");
        throw e;
    }
} //InternalMethod

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