更新時間:2020-08-11 16:52:24 來源:動力節(jié)點 瀏覽2412次
1:java常見異常架構圖
1、粉紅色的是受檢查異常(checked exception),其必須被try{}catch語句塊所捕獲,或者在方法簽名里通過throws子句聲明拋出,因為Java編譯器要進行檢查,Java虛擬機也要進行檢查,以確保遵守這個規(guī)則,如果不進行處理會報錯。
運行時異常(runtime exception),需要程序員自己分析代碼決定是否捕獲和處理。
Error,屬于嚴重錯誤,一般指與虛擬機相關的問題,如系統(tǒng)崩潰、虛擬機報錯、動態(tài)鏈接失敗等。無法通過程序編譯時進行捕獲和處理,需要根據業(yè)務信息進行特殊處理,Error不需要捕獲。
2、try{}里有一個return語句,那么緊跟在try后的finally{},先于return執(zhí)行。只有try{}語句中使用System.exit(),時finally語句才不會被執(zhí)行,因為系統(tǒng)直接退出。另,try{}語句和Finally{}中同時包含return()時,try()中的return()將不會被執(zhí)行,只執(zhí)行finally語句的return()語句。
3、當時用try{}catch{}語句時,異常是如何尋找catch塊的呢,每一個catch塊都有一個指定的異常類及其子類的異常實例。當try{}中語句產生異常后,try{}其拋出到JVM運行環(huán)境中,運行環(huán)境接收到該異常后會判斷該異常由哪個catch塊處理。當未找到可以處理該異常的catch塊時,程序運行終止,系統(tǒng)拋出異常。Java7中有多異常捕獲,多異常類型使用“|”隔開,多異常捕獲的異常變量使用隱式final修飾,因此變量名不可以改變。
多異常捕獲:
try{
}catch(IndexOutOfBoundsException|NumberFormatException??ie){
//ie變量默認有final修飾,因此下面語句就會報錯
ie=new?NumberFormatException("test");
}
4、throws、throw
在(checked exception)中,throws為當不知道異常為何種異常,或者不想對異常進行處理時,需要進行聲明拋出異常。throw為用戶自行處理拋出異常,多數用于向用戶提示信息。
5、catch和throw同時使用,有些異常比較復雜,一個catch塊不能將其處理完全,這時需要在catch中自定義一個throw拋出異常,告訴調用該方法的調用者需要對這個異常再次進行處理。
以上就是動力節(jié)點java培訓機構的小編針對“Java中的異常處理機制的簡單原理?”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。