我正在尝试在异常块中打印堆栈行进器,但它仅显示当前类
public class Test1 {
public void test() throws Exception{
Test2 test2 = new Test2();
test2.test();
}
}
public class Test2 {
public void test() throws Exception{
System.out.println(1/0);
}
}
public class TestStackWalker {
public static void main(String[] args) {
Test1 test1 = new Test1();
try {
test1.test();
} catch (Exception e) {
StackWalker stack = StackWalker.getInstance();
stack.forEach(System.out::println);
}
}
}
StackWalker
文档:walk方法为当前线程打开StackWalker
的顺序流,然后应用给定的函数对StackFrames
流进行步进。
因为您正在从主方法调用它-仅分配了一个StackFrame
并正在打印。
如果要堆栈跟踪异常,请使用StackFrame
:
将打印:
Throwable::getStackTrace