Язык

Throwable.PrintStackTrace Метод

Определение

Перегрузки

Имя. Описание
PrintStackTrace(PrintStream)

Печатает этот бросаемый объект и его обратный вывод в указанный поток печати.

PrintStackTrace(PrintWriter)

Печатает этот бросаемый объект и его обратный вывод в указанный модуль записи печати.

PrintStackTrace()

Выводит этот бросаемый объект и его обратную откат к стандартному потоку ошибок.

PrintStackTrace(PrintStream)

Печатает этот бросаемый объект и его обратный вывод в указанный поток печати.

[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

Параметры

s
PrintStream

PrintStream использование для выходных данных

Атрибуты

Комментарии

Печатает этот бросаемый объект и его обратный вывод в указанный поток печати.

Java документации по java.lang.Throwable.printStackTrace(java.io.PrintStream).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

PrintStackTrace(PrintWriter)

Печатает этот бросаемый объект и его обратный вывод в указанный модуль записи печати.

[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

Параметры

s
PrintWriter

PrintWriter использование для выходных данных

Атрибуты

Комментарии

Печатает этот бросаемый объект и его обратный вывод в указанный модуль записи печати.

Добавлено в версии 1.1.

Java документации по java.lang.Throwable.printStackTrace(java.io.PrintWriter).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

PrintStackTrace()

Выводит этот бросаемый объект и его обратную откат к стандартному потоку ошибок.

[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
Атрибуты

Комментарии

Выводит этот бросаемый объект и его обратную откат к стандартному потоку ошибок. Этот метод выводит трассировку стека для этого Throwable объекта в потоке вывода ошибок, который является значением поля System.err. Первая строка выходных данных содержит результат #toString() метода для этого объекта. Оставшиеся строки представляют данные, ранее записанные методом #fillInStackTrace(). Формат этой информации зависит от реализации, но следующий пример может рассматриваться как типичный: <blockquote>

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

</blockquote> Этот пример был создан путем запуска программы:

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]);
                }
            }

Обратная запись для бросаемого объекта с инициализированной инициализированной, ненулевой причиной, как правило, должна включать обратную откатку для причины. Формат этой информации зависит от реализации, но следующий пример может рассматриваться как типичный:

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

Обратите внимание на наличие строк, содержащих символы "...". Эти строки указывают на то, что оставшаяся часть трассировки стека для этого исключения соответствует указанному количеству кадров из нижней части трассировки стека исключения, вызванного этим исключением (исключение включающей). Это сокращение может значительно уменьшить длину выходных данных в обычном случае, когда исключение, завернутое из того же метода, что и "причинное исключение" перехватывается. Приведенный выше пример был создан путем запуска программы:

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 {
            }

По состоянию на выпуске 7 платформа поддерживает понятие подавляемых исключений (в сочетании с оператором try-with-resources). Все исключения, которые были подавлены для доставки исключения, печатаются под трассировкой стека. Формат этой информации зависит от реализации, но следующий пример может рассматриваться как типичный:

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

Обратите внимание, что "... n more" нотация используется для подавляемых исключений так же, как и в причинах. В отличие от причин, подавляемые исключения удаляются за пределы их "содержащих исключений".

Исключение может иметь как причину, так и одно или несколько подавляемых исключений:

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)

Аналогичным образом, подавляемое исключение может иметь причину:

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 документации по java.lang.Throwable.printStackTrace().

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к