StackTrace Constructeurs
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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
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
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.