📜  将堆栈跟踪转换为字符串的Java程序

📅  最后修改于: 2022-05-13 01:55:50.682000             🧑  作者: Mango

将堆栈跟踪转换为字符串的Java程序

以下Java编程主题的先决知识:

  • Java字符串
  • Java异常处理

将堆栈跟踪转换为字符串

在下面的程序中,我们通过访问越界元素将 ArrayIndexOutOfBoundsException 放到我们的程序中。 Java StringWriter 类是一个字符流,它从可用于构造字符串的字符串缓冲区收集输出。 Java PrintWriter 类是Java.io 包的一部分,用于以文本形式写入输出数据。在 catch 块中使用StringWriterPrintWriter ,其背后的目的是以字符串的形式打印给定的输出。

现在使用异常的printStackTrace()方法打印堆栈跟踪,然后将其写入编写器。最后,使用toString()方法将其转换为字符串。

执行:

Java
// Java Program to convert a Stack trace to a string
  
import java.io.*;
  
public class PrintStackTrace {
  
    public static void main(String[] args)
    {
  
        try {
            int a[] = new int[3];
            System.out.println(
                "Printing element at index four:" + a[4]);
        }
        catch (ArrayIndexOutOfBoundsException e) {
            StringWriter string_writer = new StringWriter();
            e.printStackTrace(
                new PrintWriter(string_writer));
  
            String printExceptionAsString
                = string_writer.toString();
            System.out.println(printExceptionAsString);
        }
    }
}


输出
java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 3
    at PrintStackTrace.main(PrintStackTrace.java:12)