当前位置: 代码迷 >> J2SE >> 关于错误捕获错误写入文件
  详细解决方案

关于错误捕获错误写入文件

热度:113   发布时间:2016-04-24 12:09:07.0
关于异常捕获异常写入文件
希望把数组越界的异常写入一个文件中,并加入产生异常的时间。我写的代码如下
Java code
package com.cn.shijiu;import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import java.io.PrintStream;import java.text.SimpleDateFormat;import java.util.Date;public class Test1{    public static void main(String args[]) throws IOException    {        try        {            int[] a = new int[2];            System.out.println(a[3]);        } catch (Exception e)        {            try            {                FileWriter fw = new FileWriter("d:\\log.txt");                Date d = new Date();                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");                String s = sdf.format(d);                fw.write(s);                fw.flush();                e.printStackTrace(new PrintStream("d:\\log.txt"));            } catch (FileNotFoundException e1)            {                e1.printStackTrace();            }        }    }}

文件名不同的话,时间,和异常分别能写进2个文件。但是文件名相同的话就不行了。
不知道问题出哪了?哪位给指导下。

------解决方案--------------------
e.printStackTrace(new PrintStream("d:\\log.txt"));
//如果log文件没创建,这句会创建文件 如果创建了 这句会将log文件中的信息覆盖掉
所以不会显示时间的信息

------解决方案--------------------
改成下面这样就可以了,异常信息都存在一个文件当中
Java code
import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;public class Test1{    public static void main(String args[]) throws IOException    {        try        {            int[] a = new int[2];            System.out.println(a[3]);        } catch (Exception e)        {            try            {                FileWriter fw = new FileWriter("d:\\log.txt",true);                Date d = new Date();                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");                String s = sdf.format(d);                fw.write(s);                fw.write("\r\n");                fw.flush();                e.printStackTrace(new PrintWriter(fw));                fw.close();            } catch (FileNotFoundException e1)            {                e1.printStackTrace();            }        }    }}
  相关解决方案