Java改變異常輸出的一種形式,封裝框架的時候覺得有用,自定義異常輸出的一種思路
阿新 • • 發佈:2019-01-24
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)