如何獲取e.printStackTrace()的內容

e.printStackTrace()一般是打印在控制檯的,可是,有時候程序上線了須要看這個堆棧的內容就不容易了,一來生產環境打印的東西不少或者不多,二來有時候沒法直接查看到,這個時候就須要把這些內容記錄下來,好比記錄到數據庫中,下面的方法能夠完整記錄。 java

 

 

public static void main(String[] args) {  數據庫

        try {  spa

            String aa = "";  string

            System.out.println(aa.substring(3));  it

 

        } catch (Exception e) {  io

            e.printStackTrace();  程序

            StringWriter sw = new StringWriter();  方法

            e.printStackTrace(new PrintWriter(sw, true));  數據

            String str = sw.toString();  static

            System.out.println("=========="); 

 

            System.out.println(str); 

        } 

    } 

 

打印的效果以下:

 

 

java.lang.StringIndexOutOfBoundsException: String index out of range: -3 

    at java.lang.String.substring(Unknown Source) 

    at java.lang.String.substring(Unknown Source) 

    at Getc.main(Getc.java:16) 

========== 

java.lang.StringIndexOutOfBoundsException: String index out of range: -3 

    at java.lang.String.substring(Unknown Source) 

    at java.lang.String.substring(Unknown Source) 

    at Getc.main(Getc.java:16)  

相關文章
相關標籤/搜索