繁体   English   中英

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

[英]How do I write exceptions to a text file? (JAVA)

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

我大部分都了解异常,但我不明白如何用 Java 将所有异常写入文本文件...

就像我在评论中写的那样,写一个try ... catch块,在其中使用Printwriter将异常写入File Printwriter 例如:

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.ArrayIndexOutOfBoundsException: 10

您可以通过执行打印整个Stack Trace

e.printStackTrace(writer);

非常重要的是您不要忘记关闭PrintWriter否则您的文件将不会被打印到。 完成写入文件后,关闭:

writer.close();

使用 log4j 进行日志记录,

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

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

commons-logging, it's use likewise:

log.error("Message", exception);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM