How can I get the current stack trace in Java?

前端 未结 21 3706
耶瑟儿~
耶瑟儿~ 2020-11-21 23:49

How do I get the current stack trace in Java, like how in .NET you can do Environment.StackTrace?

I found Thread.dumpStack() but it is not what I want -

21条回答
  •  野性不改
    2020-11-22 00:22

    In Java 9 there is a new way:

    public static void showTrace() {
    
      List frames =
        StackWalker.getInstance( Option.RETAIN_CLASS_REFERENCE )
                   .walk( stream  -> stream.collect( Collectors.toList() ) );
    
      for ( StackFrame stackFrame : frames )
        System.out.println( stackFrame );
    }
    

提交回复
热议问题