StackTrace Constructeurs

Définition

Initialise une nouvelle instance de la classe StackTrace.

Surcharges

Nom Description
StackTrace()

Initialise une nouvelle instance de la StackTrace classe à partir du cadre de l’appelant.

StackTrace(Boolean)

Initialise une nouvelle instance de la classe à partir de l’image StackTrace de l’appelant, en capturant éventuellement les informations sources.

StackTrace(StackFrame)

Initialise une nouvelle instance de la StackTrace classe qui contient une trame unique.

StackTrace(Exception)

Initialise une nouvelle instance de la classe à l’aide StackTrace de l’objet d’exception fourni.

StackTrace(Int32)

Initialise une nouvelle instance de la classe à partir de l’image StackTrace de l’appelant, en ignorant le nombre spécifié d’images.

StackTrace(Exception, Int32)

Initialise une nouvelle instance de la classe à l’aide StackTrace de l’objet exception fourni et ignore le nombre spécifié d’images.

StackTrace(Int32, Boolean)

Initialise une nouvelle instance de la classe à partir de l’image StackTrace de l’appelant, en ignorant le nombre spécifié d’images et en capturant éventuellement les informations sources.

StackTrace(Thread, Boolean)
Obsolète.

Initialise une nouvelle instance de la StackTrace classe pour un thread spécifique, en capturant éventuellement les informations sources.

N’utilisez pas cette surcharge de constructeur.

StackTrace(Exception, Int32, Boolean)

Initialise une nouvelle instance de la StackTrace classe à l’aide de l’objet d’exception fourni, en ignorant le nombre spécifié d’images et en capturant éventuellement les informations sources.

StackTrace(Exception, Boolean)

Initialise une nouvelle instance de la StackTrace classe, à l’aide de l’objet d’exception fourni et éventuellement de la capture des informations sources.

StackTrace()

Initialise une nouvelle instance de la StackTrace classe à partir du cadre de l’appelant.

public:
 StackTrace();
public StackTrace();
Public Sub New ()

Exemples

L’exemple de code suivant affiche les appels de première et dernière fonction 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;
   }
}
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

Remarques

Il StackTrace est créé avec le thread actuel de l’appelant et ne contient pas de nom de fichier, de numéro de ligne ou d’informations de colonne.

Utilisez ce constructeur sans paramètre lorsque vous souhaitez une trace complète avec uniquement des informations de méthode récapitulative sur la pile des appels.

S’applique à

StackTrace(Boolean)

Initialise une nouvelle instance de la classe à partir de l’image StackTrace de l’appelant, en capturant éventuellement les informations sources.

public:
 StackTrace(bool fNeedFileInfo);
public StackTrace(bool fNeedFileInfo);
new System.Diagnostics.StackTrace : bool -> System.Diagnostics.StackTrace
Public Sub New (fNeedFileInfo As Boolean)

Paramètres

fNeedFileInfo
Boolean

true pour capturer le nom de fichier, le numéro de ligne et le numéro de colonne ; sinon, false.

Exemples

L’exemple de code suivant illustre différentes StackTrace méthodes de constructeur.

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

Remarques

Le StackTrace thread actuel de l’appelant est créé.

S’applique à

StackTrace(StackFrame)

Initialise une nouvelle instance de la StackTrace classe qui contient une trame unique.

public:
 StackTrace(System::Diagnostics::StackFrame ^ frame);
public StackTrace(System.Diagnostics.StackFrame frame);
new System.Diagnostics.StackTrace : System.Diagnostics.StackFrame -> System.Diagnostics.StackTrace
Public Sub New (frame As StackFrame)

Paramètres

frame
StackFrame

Frame que l’objet StackTrace doit contenir.

Exemples

L’exemple de code suivant écrit des informations de trace de pile dans une entrée de journal des événements.

StackFrame fr = new StackFrame(1,true);
StackTrace st = new StackTrace(fr);
EventLog.WriteEntry(fr.GetMethod().Name,
                    st.ToString(),
                    EventLogEntryType.Warning);
Dim frame As New StackFrame(1, True)
Dim strace As New StackTrace(frame)            

EventLog.WriteEntry(frame.GetMethod().Name, _
                    strace.ToString(), _
                    EventLogEntryType.Warning)

Remarques

Utilisez ce constructeur lorsque vous ne souhaitez pas la surcharge d’une trace de pile complète.

Voir aussi

S’applique à

StackTrace(Exception)

Initialise une nouvelle instance de la classe à l’aide StackTrace de l’objet d’exception fourni.

public:
 StackTrace(Exception ^ e);
public StackTrace(Exception e);
new System.Diagnostics.StackTrace : Exception -> System.Diagnostics.StackTrace
Public Sub New (e As Exception)

Paramètres

e
Exception

Objet d’exception à partir duquel construire la trace de pile.

Exceptions

Le paramètre e est null.

Remarques

Il StackTrace est créé avec le thread actuel de l’appelant et ne contient pas de nom de fichier, de numéro de ligne ou d’informations de colonne.

La trace de pile résultante décrit la pile au moment de l’exception.

Voir aussi

S’applique à

StackTrace(Int32)

Initialise une nouvelle instance de la classe à partir de l’image StackTrace de l’appelant, en ignorant le nombre spécifié d’images.

public:
 StackTrace(int skipFrames);
public StackTrace(int skipFrames);
new System.Diagnostics.StackTrace : int -> System.Diagnostics.StackTrace
Public Sub New (skipFrames As Integer)

Paramètres

skipFrames
Int32

Nombre d’images dans la pile à partir de laquelle démarrer la trace.

Exceptions

Le skipFrames paramètre est négatif.

Remarques

Il StackTrace est créé avec le thread actuel de l’appelant et ne contient pas de nom de fichier, de numéro de ligne ou d’informations de colonne.

Si le nombre d’images à ignorer est supérieur ou égal au nombre total d’images sur la pile des appels au moment de la création de l’instance, il StackTrace ne contient aucune trame.

S’applique à

StackTrace(Exception, Int32)

Initialise une nouvelle instance de la classe à l’aide StackTrace de l’objet exception fourni et ignore le nombre spécifié d’images.

public:
 StackTrace(Exception ^ e, int skipFrames);
public StackTrace(Exception e, int skipFrames);
new System.Diagnostics.StackTrace : Exception * int -> System.Diagnostics.StackTrace
Public Sub New (e As Exception, skipFrames As Integer)

Paramètres

e
Exception

Objet d’exception à partir duquel construire la trace de pile.

skipFrames
Int32

Nombre d’images dans la pile à partir de laquelle démarrer la trace.

Exceptions

Le paramètre e est null.

Le skipFrames paramètre est négatif.

Remarques

Le StackTrace fichier ne contient pas de nom de fichier, de numéro de ligne ou d’informations de colonne.

La trace de pile résultante décrit la pile au moment de l’exception.

Si le nombre d’images à ignorer est supérieur ou égal au nombre total d’images sur la pile des appels au moment de la création de l’instance, il StackTrace ne contient aucune trame.

Voir aussi

S’applique à

StackTrace(Int32, Boolean)

Initialise une nouvelle instance de la classe à partir de l’image StackTrace de l’appelant, en ignorant le nombre spécifié d’images et en capturant éventuellement les informations sources.

public:
 StackTrace(int skipFrames, bool fNeedFileInfo);
public StackTrace(int skipFrames, bool fNeedFileInfo);
new System.Diagnostics.StackTrace : int * bool -> System.Diagnostics.StackTrace
Public Sub New (skipFrames As Integer, fNeedFileInfo As Boolean)

Paramètres

skipFrames
Int32

Nombre d’images dans la pile à partir de laquelle démarrer la trace.

fNeedFileInfo
Boolean

true pour capturer le nom de fichier, le numéro de ligne et le numéro de colonne ; sinon, false.

Exceptions

Le skipFrames paramètre est négatif.

Exemples

L’exemple de code suivant illustre différentes StackTrace méthodes de constructeur.

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

Remarques

Si le nombre d’images à ignorer est supérieur ou égal au nombre total d’images sur la pile des appels au moment de la création de l’instance, il StackTrace ne contient aucune trame.

S’applique à

StackTrace(Thread, Boolean)

Attention

This constructor has been deprecated. Please use a constructor that does not require a Thread parameter. http://go.microsoft.com/fwlink/?linkid=14202

Initialise une nouvelle instance de la StackTrace classe pour un thread spécifique, en capturant éventuellement les informations sources.

N’utilisez pas cette surcharge de constructeur.

public:
 StackTrace(System::Threading::Thread ^ targetThread, bool needFileInfo);
public StackTrace(System.Threading.Thread targetThread, bool needFileInfo);
[System.Obsolete("This constructor has been deprecated.  Please use a constructor that does not require a Thread parameter.  http://go.microsoft.com/fwlink/?linkid=14202")]
public StackTrace(System.Threading.Thread targetThread, bool needFileInfo);
new System.Diagnostics.StackTrace : System.Threading.Thread * bool -> System.Diagnostics.StackTrace
[<System.Obsolete("This constructor has been deprecated.  Please use a constructor that does not require a Thread parameter.  http://go.microsoft.com/fwlink/?linkid=14202")>]
new System.Diagnostics.StackTrace : System.Threading.Thread * bool -> System.Diagnostics.StackTrace
Public Sub New (targetThread As Thread, needFileInfo As Boolean)

Paramètres

targetThread
Thread

Thread dont la trace de pile est demandée.

needFileInfo
Boolean

true pour capturer le nom de fichier, le numéro de ligne et le numéro de colonne ; sinon, false.

Attributs

Exceptions

Le thread targetThread n’est pas suspendu.

Remarques

Essentiel

N’utilisez pas ce constructeur. Il est obsolète et il n’existe aucune alternative recommandée. Lorsque vous suspendez un thread, vous n’avez aucun moyen de connaître le code qu’il exécute, et les interblocages peuvent se produire très facilement. Par exemple, si vous suspendez un thread pendant qu’il contient des verrous lors d’une évaluation des autorisations de sécurité, d’autres threads du AppDomain thread peuvent être bloqués. Si vous suspendez un thread pendant l’exécution d’un constructeur de classe, d’autres threads dans la AppDomain tentative d’utilisation de cette classe sont bloqués.

Voir aussi

S’applique à

StackTrace(Exception, Int32, Boolean)

Initialise une nouvelle instance de la StackTrace classe à l’aide de l’objet d’exception fourni, en ignorant le nombre spécifié d’images et en capturant éventuellement les informations sources.

public:
 StackTrace(Exception ^ e, int skipFrames, bool fNeedFileInfo);
public StackTrace(Exception e, int skipFrames, bool fNeedFileInfo);
new System.Diagnostics.StackTrace : Exception * int * bool -> System.Diagnostics.StackTrace
Public Sub New (e As Exception, skipFrames As Integer, fNeedFileInfo As Boolean)

Paramètres

e
Exception

Objet d’exception à partir duquel construire la trace de pile.

skipFrames
Int32

Nombre d’images dans la pile à partir de laquelle démarrer la trace.

fNeedFileInfo
Boolean

true pour capturer le nom de fichier, le numéro de ligne et le numéro de colonne ; sinon, false.

Exceptions

Le paramètre e est null.

Le skipFrames paramètre est négatif.

Remarques

La trace de pile résultante décrit la pile au moment de l’exception.

Si le nombre d’images à ignorer est supérieur ou égal au nombre total d’images sur la pile des appels au moment de la création de l’instance, il StackTrace ne contient aucune trame.

Voir aussi

S’applique à

StackTrace(Exception, Boolean)

Initialise une nouvelle instance de la StackTrace classe, à l’aide de l’objet d’exception fourni et éventuellement de la capture des informations sources.

public:
 StackTrace(Exception ^ exception, bool needFileInfo);
public:
 StackTrace(Exception ^ e, bool fNeedFileInfo);
public StackTrace(Exception exception, bool needFileInfo);
public StackTrace(Exception e, bool fNeedFileInfo);
new System.Diagnostics.StackTrace : Exception * bool -> System.Diagnostics.StackTrace
new System.Diagnostics.StackTrace : Exception * bool -> System.Diagnostics.StackTrace
Public Sub New (exception As Exception, needFileInfo As Boolean)
Public Sub New (e As Exception, fNeedFileInfo As Boolean)

Paramètres

exceptione
Exception

Objet d’exception à partir duquel construire la trace de pile.

needFileInfofNeedFileInfo
Boolean

true pour capturer le nom de fichier, le numéro de ligne et le numéro de colonne ; sinon, false.

Exceptions

Le paramètre e est null.

Remarques

La trace de pile résultante décrit la pile au moment de l’exception.

Voir aussi

S’applique à