Thread.getStackTrace()返回StackTraceElement[]。如何将其转换为String与返回格式相同的a Exception.printStackTrace()?
澄清一下:我没有例外,只有一个线程。我想使用与异常堆栈跟踪相同的格式显示线程的堆栈跟踪。
这非常简单,您只需打印它们,使用您想要的任何前缀。
要打印与 相同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]);
Run Code Online (Sandbox Code Playgroud)
输出
java.lang.RuntimeException
at Test.main(Test.java:5)
getStackTrace()
at Test.main(Test.java:8)
Run Code Online (Sandbox Code Playgroud)
请注意循环如何for跳过索引 0,因为那是其自身的堆栈帧getStackTrace()。
| 归档时间: |
|
| 查看次数: |
6064 次 |
| 最近记录: |