在此示例中,我们使用java.io.StringWriterandjava.io.PrintWriter类将堆栈跟踪异常消息转换为字符串。
package org.nhooo.example.io;
import java.io.StringWriter;
import java.io.PrintWriter;
public class StackTraceToString {
public static void main(String[] args) {
try {
int result = 10 / 0;
} catch (Exception e) {
// 创建一个StringWriter和一个PrintWriter这两个对象
// 将用于将堆栈跟踪中的数据转换为字符串。
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
// 与其在控制台中写入堆栈跟踪,不如将其写入
// 到PrintWriter,以获取堆栈跟踪消息,然后调用
// StringWriter的toString()方法。
e.printStackTrace(printWriter);
System.out.println("Error = " + stringWriter.toString());
}
}
}此代码段输出以下输出:
Error = java.lang.ArithmeticException: / by zero at org.nhooo.example.io.StackTraceToString.main(StackTraceToString.java:9)