希望把数组越界的异常写入一个文件中,并加入产生异常的时间。我写的代码如下
- 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(); } } }}