本文知識點:異常鏈簡介java
說明:由於時間緊張,本人寫博客過程當中只是對知識點的關鍵步驟進行了截圖記錄,沒有對截圖步驟進行詳細的文字說明(後面博主時間充裕了,會對目前的博客編輯修改,補充上詳細的文字說明);有些步驟和相關知識點缺少文字描述,可能會難以理解。讀者若有不明之處,歡迎博客私信或者微信(本人微信在博客下方的「關於博主」處)與本人交流,共同進步。android
異常鏈代碼
微信
main方法中調用異常鏈中的最後一個方法
異常打印的結果顯示:只獲取到了異常鏈中最後一個異常方法代碼的信息
工具
至關於前面2個方法的異常信息是丟失的
這就是一種因爲新拋出異常而致使異常信息丟失的這樣一種場景。
針對這個問題場景,該如何解決呢?
是否有辦法把前2個方法中的異常信息保留下來呢?對象
實際上是有辦法的,在Java的API中,實際上提供了這種異常的保留機制。
在Throwable構造方法裏,除了有異常描述信息的參數外,還能夠添加一個Throwable類型的參數,藉由一個已經產生的異常對象和一段新的描述構造一個新的異常對象。
blog
固然,也能夠直接加一個Throwable參數 。直接用舊的,構造新的。
博客
這是咱們經過Java的Throwable API中提供的構造方法實現舊對象信息的獲取。it
除此以外,還有initCause方法——用一個異常信息,初始化一個新的異常。
它的做用,和上面的構造方法很是相似,因此實際使用,用哪一種形式也均可以。
入門
這樣修改以後,異常鏈中的全部異常,均可以打印展現出來了。
也就是說,咱們已經可以準確地把異常的緣由以及它發生的過程記錄而且保留下來了。這就是Java中異常鏈的一種表現形態。基礎