如何将堆栈跟踪转换为字符串?


Throwable.getStackTrace()的结果转换为描述堆栈跟踪的字符串的最简单方法是什么?

可以使用以下方法将Exception堆栈跟踪转换为String。这个类在 Apache commons-
lang中是可用的,它是最常见的依赖库,有很多流行的开源

org.apache.commons.lang.exception.ExceptionUtils.getStackTrace(Throwable)

使用[ Throwable.printStackTrace(PrintWriter
pw)](https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html

printStackTrace-java.io.PrintWriter-)将堆栈跟踪发送到适当的作者。

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);

未经作者同意,本文严禁转载,违者必究!