Java如何获取异常堆栈跟踪消息?
在此示例中,我们使用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)