1. 程式人生 > >Java改變異常輸出的一種形式,封裝框架的時候覺得有用,自定義異常輸出的一種思路

Java改變異常輸出的一種形式,封裝框架的時候覺得有用,自定義異常輸出的一種思路

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)