This topic has not yet been rated - Rate this topic

StackFrame Constructor (String, Int32, Int32)

Initializes a new StackFrame object that only contains the given file name, line number, and column number.

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

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
)

Parameters

fileName

The given file name.

lineNumber

The line number in the specified file.

colNumber

The column number in the specified file.

Use this constructor when you do not want to use the debugger's line mapping logic.

The following code example demonstrates one use of a StackFrame constructor.

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 = 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;

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

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0
Did you find this helpful?
(1500 characters remaining)

Community Additions

ADD
© 2013 Microsoft. All rights reserved.