【问题标题】:How do I write exceptions to a text file? (JAVA)如何将异常写入文本文件? (JAVA)
【发布时间】:2016-03-23 23:46:19
【问题描述】:

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

我了解大部分异常,但我不了解如何将所有异常写入 Java 中的文本文件...

【问题讨论】:

  • 编写一个try ... catch 块,在其中使用Printwriter 将异常写入File error.txt。更多关于Printwriter的信息在这里:stackoverflow.com/questions/2885173/…
  • 哦,我什至没有这样想!谢谢!
  • 我在下面进行了更详细的解释。干杯!

标签: java exception io


【解决方案1】:

就像我在评论中写的那样,写一个try ... catch 块,在其中使用Printwriter 将异常写入Fileerror.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.ArrayIndexOutOfBoundsException: 10

你可以打印整个Stack Trace

e.printStackTrace(writer);

非常重要,您不要忘记关闭PrintWriter,否则您的文件将无法打印到。完成对文件的写入后,使用以下命令结束:

writer.close();

【讨论】:

    【解决方案2】:

    使用 log4j 进行日志记录,

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

    从您的 java 代码中,写下一行将打印整个堆栈轨道到 日志文件。

    commons-logging, it's use likewise:
    
    log.error("Message", exception);
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-08-16
        • 1970-01-01
        • 2014-12-13
        • 2015-05-18
        • 1970-01-01
        • 2012-01-27
        • 1970-01-01
        • 1970-01-01
        • 2019-05-17
        相关资源
        最近更新 更多