StackTrace Konstruktorok
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Inicializálja a StackTrace osztály új példányát.
Túlterhelések
| Name | Description |
|---|---|
| StackTrace() |
Inicializálja az StackTrace osztály új példányát a hívó keretéből. |
| StackTrace(Boolean) |
Inicializálja az osztály új példányát a StackTrace hívó keretéből, és opcionálisan rögzíti a forrásadatokat. |
| StackTrace(IEnumerable<StackFrame>) |
Objektumkészletből StackFrame készít veremkövetőt. |
| StackTrace(StackFrame) |
Inicializálja az StackTrace osztály egy új példányát, amely egyetlen keretet tartalmaz. |
| StackTrace(Exception) |
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával. |
| StackTrace(Int32) |
Inicializálja az StackTrace osztály új példányát a hívó keretéből, kihagyva a megadott számú keretet. |
| StackTrace(Exception, Int32) |
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával, és kihagyja a megadott számú keretet. |
| StackTrace(Int32, Boolean) |
Inicializálja az osztály új példányát a StackTrace hívó keretéből, kihagyja a megadott számú keretet, és opcionálisan rögzíti a forrásadatokat. |
| StackTrace(Thread, Boolean) |
Elavult.
Inicializálja az StackTrace osztály egy új példányát egy adott szálhoz, opcionálisan rögzíti a forrásadatokat. Ne használja ezt a konstruktor túlterhelést. |
| StackTrace(Exception, Int32, Boolean) |
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával, kihagyja a megadott számú keretet, és opcionálisan rögzíti a forrásadatokat. |
| StackTrace(Exception, Boolean) |
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával, és opcionálisan rögzíti a forrásadatokat. |
StackTrace()
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az StackTrace osztály új példányát a hívó keretéből.
public:
StackTrace();
public StackTrace();
Public Sub New ()
Példák
Az alábbi példakód az első és az utolsó függvényhívást jeleníti meg egy veremkövetésben.
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
Megjegyzések
Ez StackTrace a hívó aktuális szálával jön létre, és nem tartalmaz fájlnevet, sorszámot vagy oszlopinformációt.
Ezt a paraméter nélküli konstruktort akkor használja, ha teljes nyomkövetést szeretne, amely csak a hívásverem összesítő metódusadatait tartalmazza.
A következőre érvényes:
StackTrace(Boolean)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az osztály új példányát a StackTrace hívó keretéből, és opcionálisan rögzíti a forrásadatokat.
public:
StackTrace(bool fNeedFileInfo);
public StackTrace(bool fNeedFileInfo);
new System.Diagnostics.StackTrace : bool -> System.Diagnostics.StackTrace
Public Sub New (fNeedFileInfo As Boolean)
Paraméterek
- fNeedFileInfo
- Boolean
truea fájlnév, a sorszám és az oszlopszám rögzítéséhez; egyéb esetben. false
Példák
Az alábbi példakód a konstruktor különböző StackTrace módszereit mutatja be.
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
Megjegyzések
A StackTrace hívó aktuális szálával jön létre.
A következőre érvényes:
StackTrace(IEnumerable<StackFrame>)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Objektumkészletből StackFrame készít veremkövetőt.
public:
StackTrace(System::Collections::Generic::IEnumerable<System::Diagnostics::StackFrame ^> ^ frames);
public StackTrace(System.Collections.Generic.IEnumerable<System.Diagnostics.StackFrame> frames);
new System.Diagnostics.StackTrace : seq<System.Diagnostics.StackFrame> -> System.Diagnostics.StackTrace
Public Sub New (frames As IEnumerable(Of StackFrame))
Paraméterek
- frames
- IEnumerable<StackFrame>
A veremkövetésben jelen lévő veremkeretek halmaza.
A következőre érvényes:
StackTrace(StackFrame)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az StackTrace osztály egy új példányát, amely egyetlen keretet tartalmaz.
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éterek
- frame
- StackFrame
A keret, amelyet az StackTrace objektumnak tartalmaznia kell.
Példák
Az alábbi példakód veremkövetési adatokat ír egy eseménynapló-bejegyzésbe.
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)
Megjegyzések
Akkor használja ezt a konstruktort, ha nem szeretné, hogy a teljes veremkövetés többlettere legyen.
Lásd még
A következőre érvényes:
StackTrace(Exception)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával.
public:
StackTrace(Exception ^ e);
public StackTrace(Exception e);
new System.Diagnostics.StackTrace : Exception -> System.Diagnostics.StackTrace
Public Sub New (e As Exception)
Paraméterek
Az a kivételobjektum, amelyből létre kívánja készíteni a verem nyomkövetését.
Kivételek
A paraméter e a következő null: .
Megjegyzések
Ez StackTrace a hívó aktuális szálával jön létre, és nem tartalmaz fájlnevet, sorszámot vagy oszlopinformációt.
Az eredményként kapott veremkövetés a kivétel időpontjában írja le a vermet.
Lásd még
A következőre érvényes:
StackTrace(Int32)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az StackTrace osztály új példányát a hívó keretéből, kihagyva a megadott számú keretet.
public:
StackTrace(int skipFrames);
public StackTrace(int skipFrames);
new System.Diagnostics.StackTrace : int -> System.Diagnostics.StackTrace
Public Sub New (skipFrames As Integer)
Paraméterek
- skipFrames
- Int32
A verem azon kereteinek száma, amelyekből elindíthatja a nyomkövetést.
Kivételek
A skipFrames paraméter negatív.
Megjegyzések
Ez StackTrace a hívó aktuális szálával jön létre, és nem tartalmaz fájlnevet, sorszámot vagy oszlopinformációt.
Ha a kihagyni kívánt keretek száma nagyobb vagy egyenlő a hívásverem teljes számával a példány létrehozásakor, a StackTrace program nem tartalmaz kereteket.
A következőre érvényes:
StackTrace(Exception, Int32)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával, és kihagyja a megadott számú keretet.
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éterek
Az a kivételobjektum, amelyből létre kívánja készíteni a verem nyomkövetését.
- skipFrames
- Int32
A verem azon kereteinek száma, amelyekből elindíthatja a nyomkövetést.
Kivételek
A paraméter e a következő null: .
A skipFrames paraméter negatív.
Megjegyzések
Ez StackTrace nem tartalmaz fájlnevet, sorszámot vagy oszlopinformációt.
Az eredményként kapott veremkövetés a kivétel időpontjában írja le a vermet.
Ha a kihagyni kívánt keretek száma nagyobb vagy egyenlő a hívásverem teljes számával a példány létrehozásakor, a StackTrace program nem tartalmaz kereteket.
Lásd még
A következőre érvényes:
StackTrace(Int32, Boolean)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az osztály új példányát a StackTrace hívó keretéből, kihagyja a megadott számú keretet, és opcionálisan rögzíti a forrásadatokat.
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éterek
- skipFrames
- Int32
A verem azon kereteinek száma, amelyekből elindíthatja a nyomkövetést.
- fNeedFileInfo
- Boolean
truea fájlnév, a sorszám és az oszlopszám rögzítéséhez; egyéb esetben. false
Kivételek
A skipFrames paraméter negatív.
Példák
Az alábbi példakód a konstruktor különböző StackTrace módszereit mutatja be.
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
Megjegyzések
Ha a kihagyni kívánt keretek száma nagyobb vagy egyenlő a hívásverem teljes számával a példány létrehozásakor, a StackTrace program nem tartalmaz kereteket.
A következőre érvényes:
StackTrace(Thread, Boolean)
Figyelemfelhívás
This constructor has been deprecated. Please use a constructor that does not require a Thread parameter. http://go.microsoft.com/fwlink/?linkid=14202
Inicializálja az StackTrace osztály egy új példányát egy adott szálhoz, opcionálisan rögzíti a forrásadatokat.
Ne használja ezt a konstruktor túlterhelést.
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éterek
- targetThread
- Thread
Az a szál, amelynek a veremkövetését kéri a rendszer.
- needFileInfo
- Boolean
truea fájlnév, a sorszám és az oszlopszám rögzítéséhez; egyéb esetben. false
- Attribútumok
Kivételek
A szál targetThread nincs felfüggesztve.
Megjegyzések
Important
Ne használja ezt a konstruktort. Elavult, és nincs ajánlott alternatíva. Amikor felfüggeszt egy szálat, nem tudja, hogy milyen kódot futtat, és a holtpontok nagyon könnyen előfordulhatnak. Ha például felfüggeszt egy szálat, amíg az zárolásokat tart egy biztonsági engedély kiértékelése során, a többi szál AppDomain blokkolva lehet. Ha felfüggeszt egy szálat egy osztálykonstruktor végrehajtása közben, a rendszer letiltja az AppDomain osztály használatára tett kísérlet többi szálát.
Lásd még
A következőre érvényes:
StackTrace(Exception, Int32, Boolean)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával, kihagyja a megadott számú keretet, és opcionálisan rögzíti a forrásadatokat.
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éterek
Az a kivételobjektum, amelyből létre kívánja készíteni a verem nyomkövetését.
- skipFrames
- Int32
A verem azon kereteinek száma, amelyekből elindíthatja a nyomkövetést.
- fNeedFileInfo
- Boolean
truea fájlnév, a sorszám és az oszlopszám rögzítéséhez; egyéb esetben. false
Kivételek
A paraméter e a következő null: .
A skipFrames paraméter negatív.
Megjegyzések
Az eredményként kapott veremkövetés a kivétel időpontjában írja le a vermet.
Ha a kihagyni kívánt keretek száma nagyobb vagy egyenlő a hívásverem teljes számával a példány létrehozásakor, a StackTrace program nem tartalmaz kereteket.
Lásd még
A következőre érvényes:
StackTrace(Exception, Boolean)
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
- Forrás:
- StackTrace.cs
Inicializálja az osztály új példányát a StackTrace megadott kivételobjektum használatával, és opcionálisan rögzíti a forrásadatokat.
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éterek
- exceptione
- Exception
Az a kivételobjektum, amelyből létre kívánja készíteni a verem nyomkövetését.
- needFileInfofNeedFileInfo
- Boolean
truea fájlnév, a sorszám és az oszlopszám rögzítéséhez; egyéb esetben. false
Kivételek
A paraméter e a következő null: .
Megjegyzések
Az eredményként kapott veremkövetés a kivétel időpontjában írja le a vermet.