Java 如何将异常写入文本文件?(爪哇)

Java 如何将异常写入文本文件?(爪哇),java,exception,io,Java,Exception,Io,我应该使用Scanner从文件“input.txt”读取int值,读取直到到达文件末尾,将所有程序输出写入文件“output.txt”,将所有异常写入文件“error.txt”,并输出读取的每个数字 我大部分都理解异常,但我不知道如何用Java将所有异常写入文本文件 使用log4j进行记录 另外,在错误级别配置它,以便将错误打印到不同的文件中 文件 从java代码中,在下面的行中写入将打印整个堆栈跟踪到 日志文件 所有异常都有一个方法:getMessage(),该方法将以字符串形式返回异常。另外

我应该使用Scanner从文件“input.txt”读取int值,读取直到到达文件末尾,将所有程序输出写入文件“output.txt”,将所有异常写入文件“error.txt”,并输出读取的每个数字

我大部分都理解异常,但我不知道如何用Java将所有异常写入文本文件

使用log4j进行记录

另外,在错误级别配置它,以便将错误打印到不同的文件中 文件

从java代码中,在下面的行中写入将打印整个堆栈跟踪到 日志文件


所有异常都有一个方法:
getMessage()
,该方法将以字符串形式返回异常。另外,
toString()
(所有Java类都应该有)提供了更多的信息,因为它也调用
getMessage()

,就像我在评论中写的那样,写一个
试试。。。catch
块,使用
Printwriter
将异常写入
文件
error.txt。 例如:

PrintWriter writer = new PrintWriter("error.txt");

try {

//Code to try goes here

} catch (Exception e) {

//You've got an exception. Now print it to error.txt
    writer.write(e.toString());

}
您可以使用以下简单的方法进行测试:

PrintWriter writer = new PrintWriter("error.txt");
int[] i = new int[1];
try {
    i[10] = 2;
} catch (Exception e) {
    writer.write(e.toString());
}
这将导致error.txt被填充为:

java.lang.ArrayIndexOutofBounds异常:10

您可以通过执行以下操作打印整个
堆栈跟踪

e.printStackTrace(writer);
非常重要请不要忘记关闭
PrintWriter
,否则您的文件将无法打印到。完成对文件的写入后,使用以下命令关闭:

writer.close();

写一个
试试。。。catch
块,使用
Printwriter
将异常写入
文件error.txt
。更多关于Printwriter的信息,请点击这里:哦,我甚至没有那样想!非常感谢。我在下面详细解释了。干杯
writer.close();