【发布时间】:2015-08-23 18:10:06
【问题描述】:
将Throwable.getStackTrace() 的结果 转换为描述堆栈跟踪的字符串 的最简单方法是什么?
【问题讨论】:
-
添加代码并清楚您所做的工作...另请参阅我的编辑...
-
@gokulprasad 请查看下面给出的答案。
将Throwable.getStackTrace() 的结果 转换为描述堆栈跟踪的字符串 的最简单方法是什么?
【问题讨论】:
如果您不必从 getStackTrace 开始,那么如果您想要的只是字符串表示,那么使用 printStackTrace 比使用 getStackTrace 更容易。
String trace;
try(PrintWriter pw = new PrintWriter(new StringWriter())) {
t.printStackTrace(pw);
trace = pw.toString();
}
【讨论】:
您可以遍历StackTraceElement 对象数组并将它们附加到StringBuilder,如下所示:
Throwable t;
StringBuilder result = new StringBuilder("Throwable stack trace:");
for (StackTraceElement element : t.getStackTrace()) {
result.append(element);
result.append(System.getProperty("line.separator"));
}
System.out.println(result.toString()); // print out the formatted stack trace
【讨论】: