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

如何获取Java中的当前堆栈跟踪?- theme: channing-cyan – 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第15天,点击查看活动详情 **“如何获取Java中的当前堆栈跟踪

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第15天,点击查看活动详情

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

我如何在Java中获取当前的堆栈跟踪,就像在.NET中可以做到的那样Environment.StackTrace?

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

高分回答:


很多的知识点,真的需要写出来才会掌握 ! ! !   \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}

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

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

高分回答:

Thread.currentThread().getStackTrace();

如果您不在乎堆栈的第一个元素,那就很好了。

new Throwable().getStackTrace();

如果重要的话,将为您当前的方法定义位置。

高分回答:


Thread.currentThread().getStackTrace();

从JDK1.5开始可用。

对于较旧的版本,您可以重定向exception.printStackTrace()到StringWriter():

StringWriter sw = new StringWriter();
new Throwable("").printStackTrace(new PrintWriter(sw));
String stackTrace = sw.toString();

文章翻译自 yl2gl72eozkinivz3vc6swkesy-ac4c6men2g7xr2a-translate.translate.goog/questions/1…

作者建议:我在出现内存溢出或者内存泄漏时会关心我的堆栈信息,如果在windows直接可以打开bin文件下的jvisualvm,如果在linux可以通过jmap来看占用最多的堆,jstack查看线程的堆栈信息,也可以使用阿尔萨斯来分析。

图片.png


欢迎关注我的专栏 S t a c k O v e r F l o w , 我会筛选优质的问答,面试常考 ! ! !   \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}


有最新、优雅的实现方式,我也会在文末写出我对本问答的见解  \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/36678.html

(0)
上一篇 2023-11-16
下一篇 2023-11-17

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注