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

2022-08-31 03:54:43

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


答案 1

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

答案 2

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

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