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)