С StackWalker
документы:
Метод обхода открывает последовательный поток StackFrames
для текущего потока, а затем применяет данную функцию для обхода StackFrame
stream.
Поскольку вы вызываете его из основного метода - выделен только один StackFrame
, который печатается:
TestStackWalker.main(TestStackWalker.java:10)
Если вы хотите иметь доступ ккаждый элемент стека трассировки стека вашего исключения - используйте Throwable::getStackTrace
, который возвращает массив StackTraceElement
:
class TestStackWalker {
public static void main(String[] args) {
Test1 test1 = new Test1();
try {
test1.test();
} catch (Exception e) {
Arrays.stream(e.getStackTrace()).forEach(System.out::println);
}
}
}
, который будет печатать:
Test2.test(Test2.java:3)
Test1.test(Test1.java:4)
TestStackWalker.main(TestStackWalker.java:7)
ЕслиВы хотите только напечатать это Throwable::printStackTrace
должно быть достаточно.