Freigeben über


StackFrame-Konstruktor (String, Int32)

Initialisiert ein neues StackFrame-Objekt, das nur den angegebenen Dateinamen und die angegebene Zeilennummer enthält.

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

Syntax

'Declaration
Public Sub New ( _
    fileName As String, _
    lineNumber As Integer _
)
'Usage
Dim fileName As String
Dim lineNumber As Integer

Dim instance As New StackFrame(fileName, lineNumber)
public StackFrame (
    string fileName,
    int lineNumber
)
public:
StackFrame (
    String^ fileName, 
    int lineNumber
)
public StackFrame (
    String fileName, 
    int lineNumber
)
public function StackFrame (
    fileName : String, 
    lineNumber : int
)

Parameter

  • fileName
    Der angegebene Dateiname.
  • lineNumber
    Die Zeilennummer 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.

Public Sub Level3Method()
   Try
      Dim nestedClass As New ClassLevel4()
      nestedClass.Level4Method()
   Catch e As Exception
      Console.WriteLine(" Level3Method exception handler")
      
      ' Build a stack trace from a dummy stack frame.
      ' Explicitly specify the source file name and line number.
      Dim st As New StackTrace(New StackFrame("source.cs", 60))
      Console.WriteLine(" Stack trace with dummy stack frame: {0}", _
         st.ToString())
      Dim i As Integer
      For i = 0 To st.FrameCount - 1
         ' Display the stack frame properties.
         Dim sf As StackFrame = st.GetFrame(i)
         Console.WriteLine(" File: {0}", sf.GetFileName())
         Console.WriteLine(" Line Number: {0}", _
            sf.GetFileLineNumber())
         ' The column number defaults to zero when not initialized.
         Console.WriteLine(" Column Number: {0}", _
            sf.GetFileColumnNumber())
         If sf.GetILOffset <> StackFrame.OFFSET_UNKNOWN
            Console.WriteLine(" Intermediate Language Offset: {0}", _
                sf.GetILOffset())
         End If
         If sf.GetNativeOffset <> StackFrame.OFFSET_UNKNOWN
           Console.WriteLine(" Native Offset: {0}", _
               sf.GetNativeOffset())
         End If
      Next i 
      Console.WriteLine()
      Console.WriteLine("   ... throwing exception to next level ...")
      Console.WriteLine("-------------------------------------------------")
      Console.WriteLine()
      Throw e
   End Try
End Sub 'Level3Method
public void Level3Method()
{
   try 
   {
      ClassLevel4 nestedClass = new ClassLevel4();
      nestedClass.Level4Method();
   }
   catch (Exception e) 
   {
      Console.WriteLine(" Level3Method exception handler");

      // Build a stack trace from a dummy stack frame.
      // Explicitly specify the source file name and 
      // line number.
      StackTrace st = new StackTrace(new StackFrame("source.cs", 60));
      Console.WriteLine(" Stack trace with dummy stack frame: {0}", 
                  st.ToString());
      for(int i =0; i< st.FrameCount; i++ )
      {
         // Display the stack frame properties.
         StackFrame sf = st.GetFrame(i);
         Console.WriteLine(" File: {0}", sf.GetFileName());
         Console.WriteLine(" Line Number: {0}", 
            sf.GetFileLineNumber());
         // Note that the column number defaults to zero
         // when not initialized.
         Console.WriteLine(" Column Number: {0}", 
            sf.GetFileColumnNumber());
         if (sf.GetILOffset() != StackFrame.OFFSET_UNKNOWN)
         {
            Console.WriteLine(" Intermediate Language Offset: {0}", 
               sf.GetILOffset());
         }
         if (sf.GetNativeOffset() != StackFrame.OFFSET_UNKNOWN)
         {
            Console.WriteLine(" Native Offset: {0}", 
               sf.GetNativeOffset());
         }
      }
      Console.WriteLine();
      Console.WriteLine("   ... throwing exception to next level ...");
      Console.WriteLine("-------------------------------------------------\n");
      throw e;
   }
}
void Level3Method()
{
   try
   {
      ClassLevel4^ nestedClass = gcnew ClassLevel4;
      nestedClass->Level4Method();
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( " Level3Method exception handler" );
      
      // Build a stack trace from a dummy stack frame.
      // Explicitly specify the source file name and line number.
      StackTrace^ st = gcnew StackTrace( gcnew StackFrame( "source.cs",60 ) );
      Console::WriteLine( " Stack trace with dummy stack frame: {0}", st->ToString() );
      for ( int i = 0; i < st->FrameCount; i++ )
      {
         
         // Display the stack frame properties.
         StackFrame^ sf = st->GetFrame( i );
         Console::WriteLine( " File: {0}", sf->GetFileName() );
         Console::WriteLine( " Line Number: {0}", sf->GetFileLineNumber().ToString() );
         
         // Note that the column number defaults to zero
         // when not initialized.
         Console::WriteLine( " Column Number: {0}", sf->GetFileColumnNumber().ToString() );
         Console::WriteLine( " Intermediate Language Offset: {0}", sf->GetILOffset().ToString() );
         Console::WriteLine( " Native Offset: {0}", sf->GetNativeOffset().ToString() );
         

      }
      Console::WriteLine();
      Console::WriteLine( "   ... throwing exception to next level ..." );
      Console::WriteLine( "-------------------------------------------------\n" );
      throw e;
   }

}
public void Level3Method() throws System.Exception
{
    try {
        ClassLevel4 nestedClass = new ClassLevel4();
        nestedClass.Level4Method();
    }
    catch (System.Exception e) {
        Console.WriteLine(" Level3Method exception handler");

        // Build a stack trace from a dummy stack frame.
        // Explicitly specify the source file name and 
        // line number.
        StackTrace st = new StackTrace(new StackFrame("source.jsl", 60));
        Console.WriteLine(" Stack trace with dummy stack frame: {0}", 
            st.ToString());
        for (int i = 0; i < st.get_FrameCount(); i++) {
            // Display the stack frame properties.
            StackFrame sf = st.GetFrame(i);
            Console.WriteLine(" File: {0}", sf.GetFileName());
            Console.WriteLine(" Line Number: {0}", (
                Int32)sf.GetFileLineNumber());

            // Note that the column number defaults to zero
            // when not initialized.
            Console.WriteLine(" Column Number: {0}", 
                (Int32)sf.GetFileColumnNumber());
            if (sf.GetILOffset() != StackFrame.OFFSET_UNKNOWN) {
                Console.WriteLine(" Intermediate Language Offset: {0}", 
                    (Int32)sf.GetILOffset());
            }
            if (sf.GetNativeOffset() != StackFrame.OFFSET_UNKNOWN) {
                Console.WriteLine(" Native Offset: {0}", 
                    (Int32)sf.GetNativeOffset());
            }
        }  
        Console.WriteLine();
        Console.WriteLine(" ... throwing exception to next level...");
        Console.WriteLine("--------------------------------------------"
            + "-----\n");
        throw e;
    }
} //Level3Method

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