StackTrace Konstruktor
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginisialisasi instans baru dari kelas StackTrace.
Overload
| Nama | Deskripsi |
|---|---|
| StackTrace() |
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil. |
| StackTrace(Boolean) |
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil, secara opsional menangkap informasi sumber. |
| StackTrace(IEnumerable<StackFrame>) |
Membuat jejak tumpukan dari sekumpulan StackFrame objek. |
| StackTrace(StackFrame) |
Menginisialisasi instans StackTrace baru kelas yang berisi satu bingkai. |
| StackTrace(Exception) |
Menginisialisasi instans StackTrace baru kelas menggunakan objek pengecualian yang disediakan. |
| StackTrace(Int32) |
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil, melewati jumlah bingkai yang ditentukan. |
| StackTrace(Exception, Int32) |
Menginisialisasi instans StackTrace baru kelas menggunakan objek pengecualian yang disediakan dan melewati jumlah bingkai yang ditentukan. |
| StackTrace(Int32, Boolean) |
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil, melewati jumlah bingkai yang ditentukan dan mengambil informasi sumber secara opsional. |
| StackTrace(Thread, Boolean) |
Kedaluwarsa.
Menginisialisasi instans StackTrace baru kelas untuk utas tertentu, secara opsional menangkap informasi sumber. Jangan gunakan konstruktor ini kelebihan beban. |
| StackTrace(Exception, Int32, Boolean) |
Menginisialisasi instans StackTrace baru kelas menggunakan objek pengecualian yang disediakan, melewati jumlah bingkai yang ditentukan dan mengambil informasi sumber secara opsional. |
| StackTrace(Exception, Boolean) |
Menginisialisasi instans StackTrace baru kelas, menggunakan objek pengecualian yang disediakan dan secara opsional menangkap informasi sumber. |
StackTrace()
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil.
public:
StackTrace();
public StackTrace();
Public Sub New ()
Contoh
Contoh kode berikut menampilkan panggilan fungsi pertama dan terakhir dalam pelacakan tumpukan.
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
Keterangan
StackTrace dibuat dengan utas penelepon saat ini, dan tidak berisi nama file, nomor baris, atau informasi kolom.
Gunakan konstruktor tanpa parameter ini saat Anda menginginkan jejak lengkap hanya dengan informasi metode ringkasan tentang tumpukan panggilan.
Berlaku untuk
StackTrace(Boolean)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil, secara opsional menangkap informasi sumber.
public:
StackTrace(bool fNeedFileInfo);
public StackTrace(bool fNeedFileInfo);
new System.Diagnostics.StackTrace : bool -> System.Diagnostics.StackTrace
Public Sub New (fNeedFileInfo As Boolean)
Parameter
- fNeedFileInfo
- Boolean
true untuk mengambil nama file, nomor baris, dan nomor kolom; jika tidak, false.
Contoh
Contoh kode berikut menunjukkan berbagai StackTrace metode konstruktor.
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
Keterangan
StackTrace dibuat dengan utas penelepon saat ini.
Berlaku untuk
StackTrace(IEnumerable<StackFrame>)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Membuat jejak tumpukan dari sekumpulan StackFrame objek.
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))
Parameter
- frames
- IEnumerable<StackFrame>
Kumpulan bingkai tumpukan yang harus ada dalam pelacakan tumpukan.
Berlaku untuk
StackTrace(StackFrame)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas yang berisi satu bingkai.
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)
Parameter
- frame
- StackFrame
Bingkai yang harus dimuat StackTrace objek.
Contoh
Contoh kode berikut menulis informasi pelacakan tumpukan ke entri log peristiwa.
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)
Keterangan
Gunakan konstruktor ini ketika Anda tidak ingin overhead pelacakan tumpukan penuh.
Lihat juga
Berlaku untuk
StackTrace(Exception)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas menggunakan objek pengecualian yang disediakan.
public:
StackTrace(Exception ^ e);
public StackTrace(Exception e);
new System.Diagnostics.StackTrace : Exception -> System.Diagnostics.StackTrace
Public Sub New (e As Exception)
Parameter
Objek pengecualian untuk membangun jejak tumpukan.
Pengecualian
Parameternya e adalah null.
Keterangan
StackTrace dibuat dengan utas penelepon saat ini, dan tidak berisi nama file, nomor baris, atau informasi kolom.
Jejak tumpukan yang dihasilkan menjelaskan tumpukan pada saat pengecualian.
Lihat juga
Berlaku untuk
StackTrace(Int32)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil, melewati jumlah bingkai yang ditentukan.
public:
StackTrace(int skipFrames);
public StackTrace(int skipFrames);
new System.Diagnostics.StackTrace : int -> System.Diagnostics.StackTrace
Public Sub New (skipFrames As Integer)
Parameter
- skipFrames
- Int32
Jumlah bingkai yang meningkatkan tumpukan untuk memulai pelacakan.
Pengecualian
Parameternya skipFrames negatif.
Keterangan
StackTrace dibuat dengan utas penelepon saat ini, dan tidak berisi nama file, nomor baris, atau informasi kolom.
Jika jumlah bingkai yang akan dilewati lebih besar dari atau sama dengan jumlah total bingkai pada tumpukan panggilan pada saat instans dibuat, StackTrace tidak akan berisi bingkai.
Berlaku untuk
StackTrace(Exception, Int32)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas menggunakan objek pengecualian yang disediakan dan melewati jumlah bingkai yang ditentukan.
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)
Parameter
Objek pengecualian untuk membangun jejak tumpukan.
- skipFrames
- Int32
Jumlah bingkai yang meningkatkan tumpukan untuk memulai pelacakan.
Pengecualian
Parameternya e adalah null.
Parameternya skipFrames negatif.
Keterangan
StackTrace tidak berisi nama file, nomor baris, atau informasi kolom.
Jejak tumpukan yang dihasilkan menjelaskan tumpukan pada saat pengecualian.
Jika jumlah bingkai yang akan dilewati lebih besar dari atau sama dengan jumlah total bingkai pada tumpukan panggilan pada saat instans dibuat, StackTrace tidak akan berisi bingkai.
Lihat juga
Berlaku untuk
StackTrace(Int32, Boolean)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas dari bingkai pemanggil, melewati jumlah bingkai yang ditentukan dan mengambil informasi sumber secara opsional.
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)
Parameter
- skipFrames
- Int32
Jumlah bingkai yang meningkatkan tumpukan untuk memulai pelacakan.
- fNeedFileInfo
- Boolean
true untuk mengambil nama file, nomor baris, dan nomor kolom; jika tidak, false.
Pengecualian
Parameternya skipFrames negatif.
Contoh
Contoh kode berikut menunjukkan berbagai StackTrace metode konstruktor.
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
Keterangan
Jika jumlah bingkai yang akan dilewati lebih besar dari atau sama dengan jumlah total bingkai pada tumpukan panggilan pada saat instans dibuat, StackTrace tidak akan berisi bingkai.
Berlaku untuk
StackTrace(Thread, Boolean)
Perhatian
This constructor has been deprecated. Please use a constructor that does not require a Thread parameter. http://go.microsoft.com/fwlink/?linkid=14202
Menginisialisasi instans StackTrace baru kelas untuk utas tertentu, secara opsional menangkap informasi sumber.
Jangan gunakan konstruktor ini kelebihan beban.
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)
Parameter
- targetThread
- Thread
Utas yang jejak tumpukannya diminta.
- needFileInfo
- Boolean
true untuk mengambil nama file, nomor baris, dan nomor kolom; jika tidak, false.
- Atribut
Pengecualian
Utas targetThread tidak ditangguhkan.
Keterangan
Important
Jangan gunakan konstruktor ini. Ini usang, dan tidak ada alternatif yang disarankan. Ketika Anda menangguhkan utas, Anda tidak memiliki cara untuk mengetahui kode apa yang dijalankannya, dan kebuntuan dapat terjadi dengan sangat mudah. Misalnya, jika Anda menangguhkan utas saat menahan kunci selama evaluasi izin keamanan, utas lain di mungkin diblokir AppDomain . Jika Anda menangguhkan utas saat menjalankan konstruktor kelas, utas lain dalam upaya untuk menggunakan kelas tersebut AppDomain diblokir.
Lihat juga
Berlaku untuk
StackTrace(Exception, Int32, Boolean)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas menggunakan objek pengecualian yang disediakan, melewati jumlah bingkai yang ditentukan dan mengambil informasi sumber secara opsional.
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)
Parameter
Objek pengecualian untuk membangun jejak tumpukan.
- skipFrames
- Int32
Jumlah bingkai yang meningkatkan tumpukan untuk memulai pelacakan.
- fNeedFileInfo
- Boolean
true untuk mengambil nama file, nomor baris, dan nomor kolom; jika tidak, false.
Pengecualian
Parameternya e adalah null.
Parameternya skipFrames negatif.
Keterangan
Jejak tumpukan yang dihasilkan menjelaskan tumpukan pada saat pengecualian.
Jika jumlah bingkai yang akan dilewati lebih besar dari atau sama dengan jumlah total bingkai pada tumpukan panggilan pada saat instans dibuat, StackTrace tidak akan berisi bingkai.
Lihat juga
Berlaku untuk
StackTrace(Exception, Boolean)
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
- Sumber:
- StackTrace.cs
Menginisialisasi instans StackTrace baru kelas, menggunakan objek pengecualian yang disediakan dan secara opsional menangkap informasi sumber.
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)
Parameter
- exceptione
- Exception
Objek pengecualian untuk membangun jejak tumpukan.
- needFileInfofNeedFileInfo
- Boolean
true untuk mengambil nama file, nomor baris, dan nomor kolom; jika tidak, false.
Pengecualian
Parameternya e adalah null.
Keterangan
Jejak tumpukan yang dihasilkan menjelaskan tumpukan pada saat pengecualian.