将堆栈跟踪转换为字符串的Java程序
以下Java编程主题的先决知识:
- Java字符串
- Java异常处理
将堆栈跟踪转换为字符串
在下面的程序中,我们通过访问越界元素将 ArrayIndexOutOfBoundsException 放到我们的程序中。 Java StringWriter 类是一个字符流,它从可用于构造字符串的字符串缓冲区收集输出。 Java PrintWriter 类是Java.io 包的一部分,用于以文本形式写入输出数据。在 catch 块中使用StringWriter和PrintWriter ,其背后的目的是以字符串的形式打印给定的输出。
现在使用异常的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)