Мы проанализировали использование функции стека исключений Java через пример кода и собрали два метода для Java для получения информации о стеке исключений ниже. Ниже приведено все содержание:
(Stack Trace) Трассировка стека исключений относится к:
При броске броска, бросаемый объект бросает несколько слоев вызова метода (стек вызовов метода), через которые проходит процесс (шаттл). Чем ближе вы приближаетесь к заявлению Throw, метод сначала входит в стек исключений.
(Выбрасываемая причинно -следственная цепь) Исключение причина цепь:
Свойство причины в бросаемом классе представляет собой исходное исключение, обернутое текущим исключением. (Можно назвать причиной исключения)
При печати трека стека исключений стек исключений исходного исключения рекурсивно печатается.
Теперь давайте проанализируем метод throwable.printstacktrace ().
Inside Throwable.printstacktrace (PrintsreamorWriter S), мы можем увидеть:
При печати стека исключений, стек исключения текущего объекта исключения, который он впервые напечатан.
Затем распечатайте цепь причин исключения. (Рекурсивно печатает стек исключения исходного исключения)
Synchronized (s.lock ()) {// Распечатайте наш стек Trace // 1. Сначала распечатайте стек исключения текущего объекта исключения. s.println (это); StacktraceElement [] trace = getourStackTrace (); для (StackTraceElement TraceElement: Trace) S.Println ("/tat" + traceElement); // Печать подавленных исключений, если таковые имеются для (Throwable SE: getSupressed ()) se.printenclosedStackTrace (s, trace, suppressed_caption, "/t", dejavu); // Печать причины, если есть // 2. Печать CAUSE ORCAUSE = GETCAUSE (); if (urbause! = null) ourcause.printenclosedStackTrace (s, trace, cause_caption, "", dejavu); }Java получает информацию о стеке исключений
Метод 1:
public Static String getStackTrace (Throwable T) {StringWriter SW = new StringWriter (); PrintWriter PW = New PrintWriter (SW); try {t.printstacktrace (pw); вернуть sw.toString (); } наконец {pw.close (); }}Метод 2:
org.apache.commons.lang3.exception.exceptionutils.getstacktrace (e);