如何在Java中获取当前的堆栈跟踪?

2022-08-31 03:57:31

如何在Java中获取当前的堆栈跟踪,就像在.NET中如何执行Emb environment.StackTrace一样

我找到了,但这不是我想要的 - 我想把堆栈跟踪找回来,而不是打印出来。Thread.dumpStack()


答案 1

您可以使用 .Thread.currentThread().getStackTrace()

这返回一个 StackTraceElements 数组,这些数组表示程序的当前堆栈跟踪。


答案 2
StackTraceElement[] st = Thread.currentThread().getStackTrace();

如果你不关心堆栈的第一个元素是什么,那就好了。

StackTraceElement[] st = new Throwable().getStackTrace();

将为当前方法定义位置(如果这很重要)。


推荐