Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印堆栈跟踪,包括已完成的方法_Java_Stack Trace_Throwable_Printstacktrace - Fatal编程技术网

Java 打印堆栈跟踪,包括已完成的方法

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

所以,我有这个类,我想打印调用了哪些方法。当我运行它时,它只打印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运行时的异常和堆栈跟踪方面的用途。

method1
method2
已经被调用,但已经完成了它们的工作,因此它们没有理由出现在跟踪中。堆栈跟踪的任务是显示正在进行的函数(堆栈上未完成的调用)


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

这就解释了这一点。谢谢你的快速回答。那就解释了。谢谢你的快速回答。