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


e.printStackTrace()通常是打印在控制台的,但是,有時候程序上線了需要看這個堆棧的內容就不容易了,一來生產環境打印的東西很多或者很少,二來有時候無法直接查看到,這個時候就需要把這些內容記錄下來,比如記錄到數據庫中,下面的方法可以完整記錄。

Java代碼   收藏代碼
  1. public static void main(String[] args) {  
  2.         try {  
  3.             String aa = "";  
  4.             System.out.println(aa.substring(3));  
  5.   
  6.         } catch (Exception e) {  
  7.             e.printStackTrace();  
  8.             StringWriter sw = new StringWriter();  
  9.             e.printStackTrace(new PrintWriter(sw, true));  
  10.             String str = sw.toString();  
  11.             System.out.println("==========");  
  12.   
  13.             System.out.println(str);  
  14.         }  
  15.     }  

 
打印的效果如下:

Java代碼   收藏代碼
  1. java.lang.StringIndexOutOfBoundsException: String index out of range: -3  
  2.     at java.lang.String.substring(Unknown Source)  
  3.     at java.lang.String.substring(Unknown Source)  
  4.     at Getc.main(Getc.java:16)  
  5. ==========  
  6. java.lang.StringIndexOutOfBoundsException: String index out of range: -3  
  7.     at java.lang.String.substring(Unknown Source)  
  8.     at java.lang.String.substring(Unknown Source)  
  9.     at Getc.main(Getc.java:16)  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM