亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么要調用initCause?

RuntimeException newrun=new RuntimeException("司機一滴酒");
? ?newrun.initCause(e);
? ?throw newrun;
為什么要調用initCause?

正在回答

1 回答

initCause()這個方法就是對異常來進行包裝的,目的就是為了出了問題的時候能夠追根究底。因為一個項目,越往底層,可能拋出的異常類型會用很多,如果你在上層想要處理這些異常,你就需要挨個的寫很多catch語句塊來捕捉異常,這樣是很麻煩的。如果我們對底層拋出的異常捕獲后,拋出一個新的統一的異常,會避免這個問題。但是直接拋出一個新的異常,會讓最原始的異常信息丟失,這樣不利于排查問題。舉個例子,在底層會出現一個A異常,然后在中間代碼層捕獲A異常,對上層拋出一個B異常。如果在中間代碼層不對A進行包裝,在上層代碼捕捉到B異常后就不知道為什么會導致B異常的發生,但是包裝以后我們就可以用getCause()方法獲得原始的A異常。這對追查BUG是很有利的。

轉載的,希望有用!

5 回復 有任何疑惑可以回復我~
#1

Sketch_Plane1

雖然不是我問的,但是謝謝大佬
2017-05-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么要調用initCause?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號