在此示例中,我们使用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)