日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

怎么获得异常的详细信息 printStackTrace

發布時間:2023/12/13 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 怎么获得异常的详细信息 printStackTrace 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在捕捉到程序異常時,可以使用e.printStackTrace();來輸出詳細的信息來分析異常。

但是很多時候我們不只是在終端查看,我們會希望將異常的詳細信息得到,然后再做一些展示

比如寫到日志文件中,在jsp頁面中展示等。

那么我們怎么才能獲得和e.printStackTrace();這種詳細的信息呢。

當然一般的e.getMessage();是不能令我們滿意的。下面記錄一個比較好的方式

其實就是利用StackTraceElement [] exceptionStack=e.getStackTrace();

每一個StackTraceElement都代表著一條異常的堆棧信息(就這樣描述吧→_→)

 1 package hello;
 2 
 3 public class HelloBB {
 4     
 5     public static void main(String[] args) {
 6         String message = null; // 用來接收異常信息
 7         try {
 8             System.out.println(Integer.parseInt("s"));
 9         } catch (NumberFormatException e) {
10             message = getStackTrace(e); // 調用自定義的方法獲取異常信息
11             e.printStackTrace(); 
12         }
13         try {
14             Thread.sleep(1000L); // 等待一段時間,防止兩次輸出交錯,效果演示需要,可忽略
15         } catch (InterruptedException e) {
16             e.printStackTrace();
17         }
18         System.out.println(message); // 自定義的方法獲得的異常
19     }
20     
21     /**
22      * 
23      * @param e
24      * @return
25      */
26     public static String getStackTrace(Exception e) {
27         StringBuffer message = new StringBuffer();
28         StackTraceElement [] exceptionStack=e.getStackTrace();
29         message.append(e.toString()); // java.lang.NumberFormatException: For input string: "s"
30         for(StackTraceElement ste : exceptionStack) {
31             message.append("
	at " + ste); // at ***.***.**(**)
32         }
33         return message.toString();
34     }
35     
36 }
java.lang.NumberFormatException: For input string: "s"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:447)
    at java.lang.Integer.parseInt(Integer.java:497)
    at hello.HelloBB.main(HelloBB.java:8)
java.lang.NumberFormatException: For input string: "s"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:447)
    at java.lang.Integer.parseInt(Integer.java:497)
    at hello.HelloBB.main(HelloBB.java:8)

總結

以上是生活随笔為你收集整理的怎么获得异常的详细信息 printStackTrace的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。