使用Throwable.printStackTrace(PrintWriter pw)
将堆栈跟踪发送到适当的编写器。
import java.io.StringWriter;
import java.io.PrintWriter;
// ...
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
String sStackTrace = sw.toString(); // stack trace as a string
System.out.println(sStackTrace);
可以使用以下方法将Exception
堆栈跟踪转换为String
。这个类在Apache commons-lang 中可用, 它是最常见的依赖库,有许多流行的开源
org.apache.commons.lang.exception.ExceptionUtils.getStackTrace(Throwable)
这应该工作:
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String exceptionAsString = sw.toString();