StackTrace Oluşturucular
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
StackTrace sınıfının yeni bir örneğini başlatır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| StackTrace() |
Çağıranın çerçevesinden StackTrace sınıfının yeni bir örneğini başlatır. |
| StackTrace(Boolean) |
İsteğe bağlı olarak kaynak bilgileri yakalayarak çağıranın çerçevesinden sınıfının yeni bir örneğini StackTrace başlatır. |
| StackTrace(IEnumerable<StackFrame>) |
Bir nesne kümesinden yığın izlemesi StackFrame oluşturur. |
| StackTrace(StackFrame) |
Sınıfının tek bir çerçeve içeren yeni bir örneğini StackTrace başlatır. |
| StackTrace(Exception) |
Sağlanan özel durum nesnesini kullanarak sınıfının yeni bir örneğini StackTrace başlatır. |
| StackTrace(Int32) |
Çağıranın çerçevesinden sınıfın StackTrace yeni bir örneğini başlatır ve belirtilen kare sayısını atlar. |
| StackTrace(Exception, Int32) |
Sağlanan özel durum nesnesini kullanarak sınıfın StackTrace yeni bir örneğini başlatır ve belirtilen sayıda kareyi atlar. |
| StackTrace(Int32, Boolean) |
Çağıranın çerçevesinden StackTrace sınıfın yeni bir örneğini başlatır, belirtilen sayıda kare atlar ve isteğe bağlı olarak kaynak bilgileri yakalar. |
| StackTrace(Thread, Boolean) |
Geçersiz.
İsteğe bağlı olarak kaynak bilgileri yakalayarak belirli bir iş parçacığı için sınıfının yeni bir örneğini StackTrace başlatır. Bu oluşturucu aşırı yükleme kullanmayın. |
| StackTrace(Exception, Int32, Boolean) |
Sağlanan özel durum nesnesini kullanarak sınıfın StackTrace yeni bir örneğini başlatır, belirtilen sayıda kare atlar ve isteğe bağlı olarak kaynak bilgileri yakalar. |
| StackTrace(Exception, Boolean) |
Sağlanan özel durum nesnesini kullanarak ve isteğe bağlı olarak kaynak bilgileri yakalayarak sınıfının yeni bir örneğini StackTrace başlatır. |
StackTrace()
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Çağıranın çerçevesinden StackTrace sınıfının yeni bir örneğini başlatır.
public:
StackTrace();
public StackTrace();
Public Sub New ()
Örnekler
Aşağıdaki kod örneği, yığın izlemesinde ilk ve son işlev çağrılarını görüntüler.
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
Açıklamalar
StackTrace, çağıranın geçerli iş parçacığıyla oluşturulur ve dosya adı, satır numarası veya sütun bilgilerini içermez.
Çağrı yığınıyla ilgili yalnızca özet yöntem bilgileriyle tam bir izleme istiyorsanız bu parametresiz oluşturucuyu kullanın.
Şunlara uygulanır
StackTrace(Boolean)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
İsteğe bağlı olarak kaynak bilgileri yakalayarak çağıranın çerçevesinden sınıfının yeni bir örneğini StackTrace başlatır.
public:
StackTrace(bool fNeedFileInfo);
public StackTrace(bool fNeedFileInfo);
new System.Diagnostics.StackTrace : bool -> System.Diagnostics.StackTrace
Public Sub New (fNeedFileInfo As Boolean)
Parametreler
- fNeedFileInfo
- Boolean
true dosya adını, satır numarasını ve sütun numarasını yakalamak için; aksi takdirde , false.
Örnekler
Aşağıdaki kod örneği çeşitli StackTrace oluşturucu yöntemlerini gösterir.
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
Açıklamalar
, StackTrace çağıranın geçerli iş parçacığıyla oluşturulur.
Şunlara uygulanır
StackTrace(IEnumerable<StackFrame>)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Bir nesne kümesinden yığın izlemesi StackFrame oluşturur.
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))
Parametreler
- frames
- IEnumerable<StackFrame>
Yığın izlemesinde bulunması gereken yığın çerçeveleri kümesi.
Şunlara uygulanır
StackTrace(StackFrame)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Sınıfının tek bir çerçeve içeren yeni bir örneğini StackTrace başlatır.
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)
Parametreler
- frame
- StackFrame
Nesnenin içermesi StackTrace gereken çerçeve.
Örnekler
Aşağıdaki kod örneği, yığın izleme bilgilerini bir olay günlüğü girdisine yazar.
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)
Açıklamalar
Tam yığın izleme yükünü istemiyorsanız bu oluşturucuyu kullanın.
Ayrıca bkz.
Şunlara uygulanır
StackTrace(Exception)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Sağlanan özel durum nesnesini kullanarak sınıfının yeni bir örneğini StackTrace başlatır.
public:
StackTrace(Exception ^ e);
public StackTrace(Exception e);
new System.Diagnostics.StackTrace : Exception -> System.Diagnostics.StackTrace
Public Sub New (e As Exception)
Parametreler
Yığın izlemesinin oluşturulduğu özel durum nesnesi.
Özel durumlar
parametresidir enull.
Açıklamalar
StackTrace, çağıranın geçerli iş parçacığıyla oluşturulur ve dosya adı, satır numarası veya sütun bilgilerini içermez.
Sonuçta elde edilen yığın izlemesi, özel durum sırasında yığını açıklar.
Ayrıca bkz.
Şunlara uygulanır
StackTrace(Int32)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Çağıranın çerçevesinden sınıfın StackTrace yeni bir örneğini başlatır ve belirtilen kare sayısını atlar.
public:
StackTrace(int skipFrames);
public StackTrace(int skipFrames);
new System.Diagnostics.StackTrace : int -> System.Diagnostics.StackTrace
Public Sub New (skipFrames As Integer)
Parametreler
- skipFrames
- Int32
İzlemenin başlatıldığı yığındaki çerçeve sayısı.
Özel durumlar
skipFrames Parametresi negatif.
Açıklamalar
StackTrace, çağıranın geçerli iş parçacığıyla oluşturulur ve dosya adı, satır numarası veya sütun bilgilerini içermez.
Atlanacak çerçeve sayısı, örnek oluşturulurken çağrı yığınındaki toplam kare sayısından büyük veya buna eşitse, StackTrace içinde çerçeve bulunmaz.
Şunlara uygulanır
StackTrace(Exception, Int32)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Sağlanan özel durum nesnesini kullanarak sınıfın StackTrace yeni bir örneğini başlatır ve belirtilen sayıda kareyi atlar.
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)
Parametreler
Yığın izlemesinin oluşturulduğu özel durum nesnesi.
- skipFrames
- Int32
İzlemenin başlatıldığı yığındaki çerçeve sayısı.
Özel durumlar
parametresidir enull.
skipFrames Parametresi negatif.
Açıklamalar
dosya StackTrace adı, satır numarası veya sütun bilgisi içermez.
Sonuçta elde edilen yığın izlemesi, özel durum sırasında yığını açıklar.
Atlanacak çerçeve sayısı, örnek oluşturulurken çağrı yığınındaki toplam kare sayısından büyük veya buna eşitse, StackTrace içinde çerçeve bulunmaz.
Ayrıca bkz.
Şunlara uygulanır
StackTrace(Int32, Boolean)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Çağıranın çerçevesinden StackTrace sınıfın yeni bir örneğini başlatır, belirtilen sayıda kare atlar ve isteğe bağlı olarak kaynak bilgileri yakalar.
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)
Parametreler
- skipFrames
- Int32
İzlemenin başlatıldığı yığındaki çerçeve sayısı.
- fNeedFileInfo
- Boolean
true dosya adını, satır numarasını ve sütun numarasını yakalamak için; aksi takdirde , false.
Özel durumlar
skipFrames Parametresi negatif.
Örnekler
Aşağıdaki kod örneği çeşitli StackTrace oluşturucu yöntemlerini gösterir.
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
Açıklamalar
Atlanacak çerçeve sayısı, örnek oluşturulurken çağrı yığınındaki toplam kare sayısından büyük veya buna eşitse, StackTrace içinde çerçeve bulunmaz.
Şunlara uygulanır
StackTrace(Thread, Boolean)
Dikkat
This constructor has been deprecated. Please use a constructor that does not require a Thread parameter. http://go.microsoft.com/fwlink/?linkid=14202
İsteğe bağlı olarak kaynak bilgileri yakalayarak belirli bir iş parçacığı için sınıfının yeni bir örneğini StackTrace başlatır.
Bu oluşturucu aşırı yükleme kullanmayın.
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)
Parametreler
- targetThread
- Thread
Yığın izlemesi istenen iş parçacığı.
- needFileInfo
- Boolean
true dosya adını, satır numarasını ve sütun numarasını yakalamak için; aksi takdirde , false.
- Öznitelikler
Özel durumlar
İş parçacığı targetThread askıya alınmaz.
Açıklamalar
Important
Bu oluşturucuyu kullanmayın. Eskidir ve önerilen bir alternatif yoktur. Bir iş parçacığını askıya aldığınızda, hangi kodun yürütülmekte olduğunu bilmenin hiçbir yolu yoktur ve kilitlenmeler çok kolay gerçekleşebilir. Örneğin, bir güvenlik izni değerlendirmesi sırasında kilitleri tutarken bir iş parçacığını askıya alırsanız, içindeki AppDomain diğer iş parçacıkları engellenebilir. Bir sınıf oluşturucuyu yürütürken bir iş parçacığını askıya alırsanız, bu sınıfı kullanmaya çalışan diğer iş parçacıkları AppDomain engellenir.
Ayrıca bkz.
Şunlara uygulanır
StackTrace(Exception, Int32, Boolean)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Sağlanan özel durum nesnesini kullanarak sınıfın StackTrace yeni bir örneğini başlatır, belirtilen sayıda kare atlar ve isteğe bağlı olarak kaynak bilgileri yakalar.
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)
Parametreler
Yığın izlemesinin oluşturulduğu özel durum nesnesi.
- skipFrames
- Int32
İzlemenin başlatıldığı yığındaki çerçeve sayısı.
- fNeedFileInfo
- Boolean
true dosya adını, satır numarasını ve sütun numarasını yakalamak için; aksi takdirde , false.
Özel durumlar
parametresidir enull.
skipFrames Parametresi negatif.
Açıklamalar
Sonuçta elde edilen yığın izlemesi, özel durum sırasında yığını açıklar.
Atlanacak çerçeve sayısı, örnek oluşturulurken çağrı yığınındaki toplam kare sayısından büyük veya buna eşitse, StackTrace içinde çerçeve bulunmaz.
Ayrıca bkz.
Şunlara uygulanır
StackTrace(Exception, Boolean)
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
- Kaynak:
- StackTrace.cs
Sağlanan özel durum nesnesini kullanarak ve isteğe bağlı olarak kaynak bilgileri yakalayarak sınıfının yeni bir örneğini StackTrace başlatır.
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)
Parametreler
- exceptione
- Exception
Yığın izlemesinin oluşturulduğu özel durum nesnesi.
- needFileInfofNeedFileInfo
- Boolean
true dosya adını, satır numarasını ve sütun numarasını yakalamak için; aksi takdirde , false.
Özel durumlar
parametresidir enull.
Açıklamalar
Sonuçta elde edilen yığın izlemesi, özel durum sırasında yığını açıklar.