要获取e.printStackTrace()打印的信息,可以使用以下方法之一:
- 将异常信息输出到字符串中:
import java.io.PrintWriter; import java.io.StringWriter; try { // 可能会抛出异常的代码 } catch (Exception e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); String exceptionAsString = sw.toString(); // 可以使用 exceptionAsString 进行处理或打印 }
- 使用Java 8的新特性
Throwable.getStackTrace()
获取堆栈跟踪信息,然后将其转换为字符串:
import java.util.Arrays; import java.util.stream.Collectors; try { // 可能会抛出异常的代码 } catch (Exception e) { String stackTraceAsString = Arrays.stream(e.getStackTrace()) .map(StackTraceElement::toString) .collect(Collectors.joining("\n")); // 可以使用 stackTraceAsString 进行处理或打印 }
这两种方法都可以获得异常的堆栈跟踪信息,并将其转换为字符串形式。您可以根据具体需求选择使用哪种方法。