Avatar ·

如何在 Java 中将 StackTrace(堆栈跟踪)转换为字符串?

大家好!我是一名 Java 初学者,在处理异常时遇到了问题。我需要将错误记录到文本文件中,但标准方法 printStackTrace() 只将堆栈跟踪输出到控制台(System.err)。我想获取完整的堆栈跟踪作为字符串,以便保存到文件、通过电子邮件发送或直接输出到日志文件。 以下是我的代码示例: ```java try { // 一些可能抛出异常的代码 int result = 10 / 0; } catch (Exception e) { // 这里我需要将堆栈跟踪作为字符串获取 e.printStackTrace(); // 这只输出到控制台 // 我想要类似这样的东西: // String stackTraceString = convertStackTraceToString(e); // System.out.println(stackTraceString); // 或者写入文件 } ``` 我尝试过使用 e.getMessage()——但它只返回简短的消息("/ by zero"),而我需要完整的堆栈跟踪(所有类似 "at com.example.MyClass.myMethod(MyClass.java:15" 的行)。