Java改变异常输出的一种形式,封装框架的时候觉得有用,自定义异常输出的一种思路

来源:互联网 发布:win10怎么连接有线网络 编辑:程序博客网 时间:2024/06/15 17:29

Java的异常输出,有时输出一大堆内容,针对异常的输出格式,目前有像Log4J等框框,通过在类路径下配置一个log4j.properties,添加相关的jar包即可。
以下是在看开源框架GUNS里的工具类源码时所启发,其实我们也可以自己定义自己的输出格式,以下是我的实现思路。

public static String getExceptionMsg(Exception e) {        StringWriter sw = new StringWriter();        try{            e.printStackTrace(new PrintWriter(sw));        }finally {            try {                sw.close();            } catch (IOException e1) {                e1.printStackTrace();            }        }// 在这里 sw.getBuffer().toString()为我们拿到的异常信息,我们可以通过正则等手段进行美化我们的输出,并可以在前台jsp等页面进行渲染。。。。//        return sw.getBuffer().toString().replaceAll("\\$","T");        // 举个例子  改变 by zero的输出     return sw.getBuffer().toString().replaceAll("by zero","huangbaokang");    }public static void main(String[] args) {        try {            int i=1/0;        } catch (Exception e) {            e.printStackTrace();            System.out.println("-----------华丽的分割线-----------");            System.out.println(getExceptionMsg(e));        }    }

输出后:

java.lang.ArithmeticException: / by zero at
com.stylefeng.guns.core.util.ToolUtil.main(ToolUtil.java:71)
———–华丽的分割线———– java.lang.ArithmeticException: / huangbaokang at
com.stylefeng.guns.core.util.ToolUtil.main(ToolUtil.java:71)