StackTrace.FrameCount Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o número de quadros no rastreamento da pilha.
public:
virtual property int FrameCount { int get(); };
public virtual int FrameCount { get; }
member this.FrameCount : int
Public Overridable ReadOnly Property FrameCount As Integer
Valor da propriedade
O número de quadros no rastreamento de pilha.
Exemplos
O exemplo de código a seguir exibe as primeira e a última chamadas de função em um rastreamento de pilha.
void Level5Method()
{
try
{
ClassLevel6^ nestedClass = gcnew ClassLevel6;
nestedClass->Level6Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " Level5Method exception handler" );
StackTrace^ st = gcnew StackTrace;
// Display the most recent function call.
StackFrame^ sf = st->GetFrame( 0 );
Console::WriteLine();
Console::WriteLine( " Exception in method: " );
Console::WriteLine( " {0}", sf->GetMethod() );
if ( st->FrameCount > 1 )
{
// Display the highest-level function call
// in the trace.
sf = st->GetFrame( st->FrameCount - 1 );
Console::WriteLine( " Original function call at top of call stack):" );
Console::WriteLine( " {0}", sf->GetMethod() );
}
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
}
public void Level5Method()
{
try
{
ClassLevel6 nestedClass = new ClassLevel6();
nestedClass.Level6Method();
}
catch (Exception e)
{
Console.WriteLine(" Level5Method exception handler");
StackTrace st = new StackTrace();
// Display the most recent function call.
StackFrame sf = st.GetFrame(0);
Console.WriteLine();
Console.WriteLine(" Exception in method: ");
Console.WriteLine(" {0}", sf.GetMethod());
if (st.FrameCount >1)
{
// Display the highest-level function call
// in the trace.
sf = st.GetFrame(st.FrameCount-1);
Console.WriteLine(" Original function call at top of call stack):");
Console.WriteLine(" {0}", sf.GetMethod());
}
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level ...");
Console.WriteLine("-------------------------------------------------\n");
throw e;
}
}
Public Sub Level5Method()
Try
Dim nestedClass As New ClassLevel6()
nestedClass.Level6Method()
Catch e As Exception
Console.WriteLine(" Level5Method exception handler")
Dim st As New StackTrace()
' Display the most recent function call.
Dim sf As StackFrame = st.GetFrame(0)
Console.WriteLine()
Console.WriteLine(" Exception in method: ")
Console.WriteLine(" {0}", sf.GetMethod())
If st.FrameCount > 1 Then
' Display the highest-level function call in the trace.
sf = st.GetFrame((st.FrameCount - 1))
Console.WriteLine(" Original function call at top of call stack):")
Console.WriteLine(" {0}", sf.GetMethod())
End If
Console.WriteLine()
Console.WriteLine(" ... throwing exception to next level ...")
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
Throw e
End Try
End Sub
Aplica-se a
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.