.NET Framework Class Library
StackFrame Constructor (Int32, Boolean)
Initializes a new instance of the StackFrame class that corresponds to a frame above the current stack frame, optionally capturing source information.
Assembly: mscorlib (in mscorlib.dll)
Syntax
Visual Basic
Public Sub New ( _ skipFrames As Integer, _ fNeedFileInfo As Boolean _ )
C#
public StackFrame( int skipFrames, bool fNeedFileInfo )
Visual C++
public: StackFrame( int skipFrames, bool fNeedFileInfo )
F#
new : skipFrames:int * fNeedFileInfo:bool -> StackFrame
Parameters
- skipFrames
- Type: System.Int32
The number of frames up the stack to skip.
- fNeedFileInfo
- Type: System.Boolean
true to capture the file name, line number, and column number of the stack frame; otherwise, false.
Examples
The following example demonstrates the use of the StackFrame(Int32, Boolean) constructor. This code example is part of a larger example provided for the StackFrame class.
Visual Basic
Public Sub Level2Method() Try Dim nestedClass As New ClassLevel3 nestedClass.Level3Method() Catch e As Exception Console.WriteLine(" Level2Method exception handler") ' Display the full call stack at this level. Dim st1 As New StackTrace(True) Console.WriteLine(" Stack trace for this level: {0}", _ st1.ToString()) ' Build a stack trace from one frame, skipping the current ' frame and using the next frame. Dim st2 As New StackTrace(New StackFrame(1, True)) Console.WriteLine(" Stack trace built with next level frame: {0}", _ st2.ToString()) ' Build a stack trace skipping the current frame, and ' including all the other frames. Dim st3 As New StackTrace(1, True) Console.WriteLine(" Stack trace built from the next level up: {0}", _ st3.ToString()) Console.WriteLine() Console.WriteLine(" ... throwing exception to next level ...") Console.WriteLine("-------------------------------------------------") Console.WriteLine() Throw e End Try End Sub 'Level2Method
C#
public void Level2Method() { try { ClassLevel3 nestedClass = new ClassLevel3(); nestedClass.Level3Method(); } catch (Exception e) { Console.WriteLine(" Level2Method exception handler"); // Display the full call stack at this level. StackTrace st1 = new StackTrace(true); Console.WriteLine(" Stack trace for this level: {0}", st1.ToString()); // Build a stack trace from one frame, skipping the current // frame and using the next frame. StackTrace st2 = new StackTrace(new StackFrame(1, true)); Console.WriteLine(" Stack trace built with next level frame: {0}", st2.ToString()); // Build a stack trace skipping the current frame, and // including all the other frames. StackTrace st3 = new StackTrace(1, true); Console.WriteLine(" Stack trace built from the next level up: {0}", st3.ToString()); Console.WriteLine(); Console.WriteLine(" ... throwing exception to next level ..."); Console.WriteLine("-------------------------------------------------\n"); throw e; } }
Visual C++
void Level2Method()
{
try
{
ClassLevel3^ nestedClass = gcnew ClassLevel3;
nestedClass->Level3Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " Level2Method exception handler" );
// Display the full call stack at this level.
StackTrace^ st1 = gcnew StackTrace( true );
Console::WriteLine( " Stack trace for this level: {0}", st1->ToString() );
// Build a stack trace from one frame, skipping the
// current frame and using the next frame.
StackTrace^ st2 = gcnew StackTrace( gcnew StackFrame( 1,true ) );
Console::WriteLine( " Stack trace built with next level frame: {0}", st2->ToString() );
// Build a stack trace skipping the current frame, and
// including all the other frames.
StackTrace^ st3 = gcnew StackTrace( 1,true );
Console::WriteLine( " Stack trace built from the next level up: {0}", st3->ToString() );
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
}
Version Information
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also