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
Параметры
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
Параметры
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.<init>(Resource2.java:45)
... 2 more
Java документации по java.lang.Throwable.printStackTrace().
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".