所以,我有这个类,我想打印调用了哪些方法。当我运行它时,它只打印trace和main,但不打印method1和method2。我如何更改它以便打印 method1 和 method2(从 main 调用的方法)?
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 运行时的异常和堆栈跟踪方面的用途的一部分。
关于java - 打印堆栈跟踪,包括已完成的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21210510/