Avatar ·

如何在Java中将异常堆栈跟踪转换为字符串?

大家好!我是一名Java初学者,在记录错误日志时遇到了问题。我需要将异常的完整stack trace保存为字符串,以便写入日志文件或发送到监控系统。 问题在于,标准方法`e.printStackTrace()`会将信息输出到控制台(System.err),而我需要的是字符串形式。我尝试过`e.getMessage()`,但它只返回错误的简短描述(例如“Division by zero”),而我需要包含类名、方法名和行号的完整跟踪信息。 以下是我的代码示例: ```java try { int result = 10 / 0; } catch (ArithmeticException e) { // 这里需要将stack trace转换为字符串 String stackTrace = ???; // 该写什么? logToFile(stackTrace); } ``` 我尝试了几种方法: 1. `e.toString()` — 只返回异常类型和消息。 2. 通过循环手动转换`StackTraceElement[]` — 代码冗长且不美观。