Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

StackTrace.GetFrame méthode (Int32)

 

Date de publication : novembre 2016

Obtient le frame de pile spécifié.

Espace de noms:   System.Diagnostics
Assembly:  mscorlib (dans mscorlib.dll)

public virtual StackFrame GetFrame(
	int index
)

Paramètres

index
Type: System.Int32

Index du frame de pile demandé.

Valeur de retour

Type: System.Diagnostics.StackFrame

Le frame de pile spécifié.

Frames de pile sont numérotés à 0, ce qui est le frame de pile dernier envoyé.

L’exemple de code suivant affiche la première et la dernière fonction appelle dans une trace de pile.

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

.NET Framework
Disponible depuis 1.1
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Retour au début
Afficher: