Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 09c3cfa

Browse filesBrowse files
author
丰宝龙 fengbaolong (88342)
committed
怎么样将堆栈追踪信息转换为字符串类型
1 parent bb703e7 commit 09c3cfa
Copy full SHA for 09c3cfa

File tree

Expand file treeCollapse file tree

1 file changed

+36
-0
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+36
-0
lines changed
+36Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#怎么样将堆栈追踪信息转换为字符串类型
2+
##问题
3+
`Throwable.getStackTrace()`的结果转换为一个字符串来来描述堆栈信息的最简单的方法是什么
4+
5+
6+
###最佳答案
7+
可以用下面的方法将异常堆栈信息转换为字符串类型。该类在Apache commons-lang-2.2.jar中可以找到:
8+
[`org.apache.commons.lang.exception.ExceptionUtils.getStackTrace(Throwable)`](org.apache.commons.lang.exception.ExceptionUtils.getStackTrace\(Throwable\))
9+
10+
###答案二
11+
[`Throwable.printStackTrace(PrintWriter pw)`](https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html#printStackTrace-java.io.PrintWriter-)将对堆栈信息发送到一个输出中:
12+
````java
13+
StringWriter sw = new StringWriter();
14+
PrintWriter pw = new PrintWriter(sw);
15+
t.printStackTrace(pw);
16+
sw.toString(); // stack trace as a string
17+
````
18+
19+
###答案三
20+
````java
21+
StringWriter sw = new StringWriter();
22+
e.printStackTrace(new PrintWriter(sw));
23+
String exceptionAsString = sw.toString();
24+
````
25+
26+
###答案四
27+
````java
28+
public String stackTraceToString(Throwable e) {
29+
StringBuilder sb = new StringBuilder();
30+
for (StackTraceElement element : e.getStackTrace()) {
31+
sb.append(element.toString());
32+
sb.append("\n");
33+
}
34+
return sb.toString();
35+
}
36+
````

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.