异常信息重定向及相关处理办法

 

    public static String outputThrowable(Throwable t) throws FileNotFoundException{
        for (StackTraceElement ste:t.getStackTrace()) {
            System.out.println(ste.getMethodName());
        }
        t.printStackTrace(System.err);
        t.printStackTrace(System.out);
        t.printStackTrace(new PrintStream("exception.txt"));//redirect to file
        
        StringWriter sw=new StringWriter();
        PrintWriter pw=new PrintWriter(sw);
        
        try {
            t.printStackTrace(pw);//redirect to file
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            pw.close();
        }
        
        return sw.toString();
        
    }

Output:

main
java.lang.ArithmeticException: / by zero
    at exception.TestException.main(TestException.java:11)
java.lang.ArithmeticException: / by zero
    at exception.TestException.main(TestException.java:11)
java.lang.ArithmeticException: / by zero
    at exception.TestException.main(TestException.java:11)
java.lang.ArithmeticException: / by zero
    at exception.TestException.main(TestException.java:11)

 




 

posted @ 2015-02-01 23:20  沧海一滴  阅读(361)  评论(0编辑  收藏  举报