次の方法で共有


StackFrame コンストラクタ (String, Int32)

指定したファイル名と行番号だけを含む新しい StackFrame オブジェクトを初期化します。

名前空間: System.Diagnostics
アセンブリ: mscorlib (mscorlib.dll 内)

構文

'宣言
Public Sub New ( _
    fileName As String, _
    lineNumber As Integer _
)
'使用
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
)

パラメータ

  • fileName
    指定したファイル名。
  • lineNumber
    指定したファイルの行番号。

解説

デバッガの行マップ ロジックを使用しない場合に、このコンストラクタを使用します。

使用例

StackFrame コンストラクタを使用するコード例を次に示します。

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

プラットフォーム

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

参照

関連項目

StackFrame クラス
StackFrame メンバ
System.Diagnostics 名前空間