Java 打印堆栈跟踪,包括已完成的方法
所以,我有这个类,我想打印调用了哪些方法。当我运行它时,它只打印trace和main,而不打印method1和method2。如何更改它,使其打印method1和method2,即从main调用的方法Java 打印堆栈跟踪,包括已完成的方法,java,stack-trace,throwable,printstacktrace,Java,Stack Trace,Throwable,Printstacktrace,所以,我有这个类,我想打印调用了哪些方法。当我运行它时,它只打印trace和main,而不打印method1和method2。如何更改它,使其打印method1和method2,即从main调用的方法 public class SomeClass { public void method1() {} public void method2() {} public static void main(String args[]) throws Throwable
public class SomeClass
{
public void method1() {}
public void method2() {}
public static void main(String args[]) throws Throwable
{
SomeClass c = new SomeClass();
c.method1();
c.method2();
SomeClass.trace();
}
public static void trace() throws Throwable
{
Throwable t = new Throwable();
StackTraceElement[] stack = t.getStackTrace();
for(StackTraceElement s : stack)
System.out.println(s.getMethodName());
}
}
method1
和method2
已被调用,但已经完成了它们的工作,因此它们没有理由出现在跟踪中。堆栈跟踪的任务是显示正在进行的函数(堆栈上未完成的调用)
如果您正在寻找能够告诉您它们已被调用(但已完成)的工具,那么您正在寻找的工具类别称为“代码覆盖率”测试工具。这不是Java运行时的异常和堆栈跟踪方面的用途。
method1
和method2
已经被调用,但已经完成了它们的工作,因此它们没有理由出现在跟踪中。堆栈跟踪的任务是显示正在进行的函数(堆栈上未完成的调用)
如果您正在寻找能够告诉您它们已被调用(但已完成)的工具,那么您正在寻找的工具类别称为“代码覆盖率”测试工具。这不是Java运行时的异常和堆栈跟踪方面的作用。这就解释了这一点。谢谢你的快速回答。那就解释了。谢谢你的快速回答。