Throwable.PrintStackTrace Metode

Definisi

Overload

Nama Deskripsi
PrintStackTrace(PrintStream)

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran cetak yang ditentukan.

PrintStackTrace(PrintWriter)

Mencetak yang dapat dilemparkan ini dan lacak baliknya ke penulis cetak yang ditentukan.

PrintStackTrace()

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran kesalahan standar.

PrintStackTrace(PrintStream)

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran cetak yang ditentukan.

[Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintStream;)V", "GetPrintStackTrace_Ljava_io_PrintStream_Handler")]
public virtual void PrintStackTrace(Java.IO.PrintStream s);
[<Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintStream;)V", "GetPrintStackTrace_Ljava_io_PrintStream_Handler")>]
abstract member PrintStackTrace : Java.IO.PrintStream -> unit
override this.PrintStackTrace : Java.IO.PrintStream -> unit

Parameter

s
PrintStream

PrintStream untuk digunakan untuk output

Atribut

Keterangan

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran cetak yang ditentukan.

Java dokumentasi untuk java.lang.Throwable.printStackTrace(java.io.PrintStream).

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk

PrintStackTrace(PrintWriter)

Mencetak yang dapat dilemparkan ini dan lacak baliknya ke penulis cetak yang ditentukan.

[Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintWriter;)V", "GetPrintStackTrace_Ljava_io_PrintWriter_Handler")]
public virtual void PrintStackTrace(Java.IO.PrintWriter s);
[<Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintWriter;)V", "GetPrintStackTrace_Ljava_io_PrintWriter_Handler")>]
abstract member PrintStackTrace : Java.IO.PrintWriter -> unit
override this.PrintStackTrace : Java.IO.PrintWriter -> unit

Parameter

s
PrintWriter

PrintWriter untuk digunakan untuk output

Atribut

Keterangan

Mencetak yang dapat dilemparkan ini dan lacak baliknya ke penulis cetak yang ditentukan.

Ditambahkan dalam 1.1.

Java dokumentasi untuk java.lang.Throwable.printStackTrace(java.io.PrintWriter).

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk

PrintStackTrace()

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran kesalahan standar.

[Android.Runtime.Register("printStackTrace", "()V", "GetPrintStackTraceHandler")]
public virtual void PrintStackTrace();
[<Android.Runtime.Register("printStackTrace", "()V", "GetPrintStackTraceHandler")>]
abstract member PrintStackTrace : unit -> unit
override this.PrintStackTrace : unit -> unit
Atribut

Keterangan

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran kesalahan standar. Metode ini mencetak jejak tumpukan untuk objek ini Throwable pada aliran output kesalahan yang merupakan nilai bidang System.err. Baris pertama output berisi hasil #toString() metode untuk objek ini. Baris yang tersisa mewakili data yang sebelumnya direkam oleh metode #fillInStackTrace(). Format informasi ini tergantung pada implementasinya, tetapi contoh berikut dapat dianggap sebagai tipikal: <blockquote>

java.lang.NullPointerException
                    at MyClass.mash(MyClass.java:9)
                    at MyClass.crunch(MyClass.java:6)
                    at MyClass.main(MyClass.java:3)

</blockquote> Contoh ini dihasilkan dengan menjalankan program:

class MyClass {
                public static void main(String[] args) {
                    crunch(null);
                }
                static void crunch(int[] a) {
                    mash(a);
                }
                static void mash(int[] b) {
                    System.out.println(b[0]);
                }
            }

Backtrace untuk yang dapat dilemparkan dengan penyebab non-null yang diinisialisasi umumnya harus menyertakan backtrace untuk penyebabnya. Format informasi ini tergantung pada implementasinya, tetapi contoh berikut dapat dianggap sebagai tipikal:

HighLevelException: MidLevelException: LowLevelException
                    at Junk.a(Junk.java:13)
                    at Junk.main(Junk.java:4)
            Caused by: MidLevelException: LowLevelException
                    at Junk.c(Junk.java:23)
                    at Junk.b(Junk.java:17)
                    at Junk.a(Junk.java:11)
                    ... 1 more
            Caused by: LowLevelException
                    at Junk.e(Junk.java:30)
                    at Junk.d(Junk.java:27)
                    at Junk.c(Junk.java:21)
                    ... 3 more

Perhatikan keberadaan baris yang berisi karakter "...". Baris-baris ini menunjukkan bahwa sisa jejak tumpukan untuk pengecualian ini cocok dengan jumlah bingkai yang ditunjukkan dari bagian bawah jejak tumpukan pengecualian yang disebabkan oleh pengecualian ini (pengecualian "penutup"). Singkatan ini dapat sangat mengurangi panjang output dalam kasus umum di mana pengecualian yang dibungkus dilemparkan dari metode yang sama dengan "pengecualian penyebab" tertangkap. Contoh di atas dihasilkan dengan menjalankan program:

public class Junk {
                public static void main(String args[]) {
                    try {
                        a();
                    } catch(HighLevelException e) {
                        e.printStackTrace();
                    }
                }
                static void a() throws HighLevelException {
                    try {
                        b();
                    } catch(MidLevelException e) {
                        throw new HighLevelException(e);
                    }
                }
                static void b() throws MidLevelException {
                    c();
                }
                static void c() throws MidLevelException {
                    try {
                        d();
                    } catch(LowLevelException e) {
                        throw new MidLevelException(e);
                    }
                }
                static void d() throws LowLevelException {
                   e();
                }
                static void e() throws LowLevelException {
                    throw new LowLevelException();
                }
            }

            class HighLevelException extends Exception {
                HighLevelException(Throwable cause) { super(cause); }
            }

            class MidLevelException extends Exception {
                MidLevelException(Throwable cause)  { super(cause); }
            }

            class LowLevelException extends Exception {
            }

Pada rilis 7, platform mendukung gagasan pengecualian yang ditekan (bersama dengan trypernyataan -with-resources). Setiap pengecualian yang ditekan untuk memberikan pengecualian dicetak di bawah jejak tumpukan. Format informasi ini tergantung pada implementasinya, tetapi contoh berikut dapat dianggap sebagai tipikal:

Exception in thread "main" java.lang.Exception: Something happened
             at Foo.bar(Foo.java:10)
             at Foo.main(Foo.java:5)
             Suppressed: Resource$CloseFailException: Resource ID = 0
                     at Resource.close(Resource.java:26)
                     at Foo.bar(Foo.java:9)
                     ... 1 more

Perhatikan bahwa "... n lebih" notasi digunakan pada pengecualian yang ditekan sama seperti yang digunakan pada penyebabnya. Tidak seperti penyebab, pengecualian yang ditekan diindentasi di luar "berisi pengecualian."

Pengecualian dapat memiliki penyebab dan satu atau beberapa pengecualian yang ditekan:

Exception in thread "main" java.lang.Exception: Main block
             at Foo3.main(Foo3.java:7)
             Suppressed: Resource$CloseFailException: Resource ID = 2
                     at Resource.close(Resource.java:26)
                     at Foo3.main(Foo3.java:5)
             Suppressed: Resource$CloseFailException: Resource ID = 1
                     at Resource.close(Resource.java:26)
                     at Foo3.main(Foo3.java:5)
            Caused by: java.lang.Exception: I did it
             at Foo3.main(Foo3.java:8)

Demikian juga, pengecualian yang ditekan dapat memiliki penyebab:

Exception in thread "main" java.lang.Exception: Main block
             at Foo4.main(Foo4.java:6)
             Suppressed: Resource2$CloseFailException: Resource ID = 1
                     at Resource2.close(Resource2.java:20)
                     at Foo4.main(Foo4.java:5)
             Caused by: java.lang.Exception: Rats, you caught me
                     at Resource2$CloseFailException.&lt;init&gt;(Resource2.java:45)
                     ... 2 more

Java dokumentasi untuk java.lang.Throwable.printStackTrace().

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk