0

所以,我有这个类,我想打印调用了哪些方法。当我运行它时,它只打印 trace 和 main,但不打印 method1 和 method2。如何更改它以便打印从 main 调用的方法 method1 和 method2?

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());
    }
}
4

1 回答 1

6

method1并且method2已经被调用但已经完成了他们的工作,所以他们没有理由被跟踪。堆栈跟踪的工作是向您显示正在执行的函数堆栈上未完成的调用)。

如果您正在寻找能够告诉您它们调用(但已经完成)的东西,那么您正在寻找的工具类别称为“代码覆盖率”测试工具。这不是 Java 运行时的异常和堆栈跟踪方面的用途的一部分。

于 2014-01-18T22:12:20.010 回答