gpt4 book ai didi

java - 如何将 StackTraceElement[] 转换为字符串?

转载 作者:行者123 更新时间:2023-12-02 11:14:39 25 4
gpt4 key购买 nike

Thread.getStackTrace()返回StackTraceElement[]。如何将其转换为与 Exception.printStackTrace() 返回格式相同的 String

澄清一下:我没有异常,只有一个线程。我想使用与异常堆栈跟踪相同的格式显示线程的堆栈跟踪。

最佳答案

这非常简单,您只需打印它们,使用您想要的任何前缀。

要与 printStackTrace() 打印相同的内容,前缀将为 "\tat "

证明

// Show printStackTrace() output
new RuntimeException().printStackTrace(System.out);

// Similar output using getStackTrace()
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
System.out.println("getStackTrace()");
for (int i = 1; i < stackTrace.length; i++)
System.out.println("\tat " + stackTrace[i]);

输出

java.lang.RuntimeException
at Test.main(Test.java:5)
getStackTrace()
at Test.main(Test.java:8)

请注意 for 循环如何跳过索引 0,因为那是 getStackTrace() 本身的堆栈帧。

关于java - 如何将 StackTraceElement[] 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50377855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com