try catch finally,return組合使用
在java中採用了異常捕獲機制,因此我們說java具有robustness特性:在java中對系統或對一些關鍵資料的操作需要加上try,catch塊,用於捕獲這部分可能發生異常的程式碼,能夠發現異常,警示程式設計人員可能發生的錯誤。try,catch,finally是三個關鍵部分:
組合方式有三種 try{ }catch(){ }finally{ }和try{ }catch(){ }和try{ }finally{ },其中最後一種方式可能編譯成功也可能編譯失敗;
一般步驟是:當try塊中發生異常時,停止後續程式的執行(try塊中發生異常點後面程式碼不執行)
當然可以在try塊中,再加上一個try,catch語句,用於捕捉內部程式碼的異常,這樣就形成了try,catch語句塊的巢狀,JVM處理方式如下:
當外部的try發生異常時,跳到外部的catch和finally;
當內部的try發生異常時,跳到內部的catch和finally,最後還要執行外部的finally語句;
當內外部沒有異常發生時,則依次執行內部的finally和外部的finally;
如果在try語句中有return語句
若在一個方法內部出現的異常沒有用try語句塊進行捕捉,此時應在方法頭大括號前面加上throws Exception字樣,表示丟擲的異常,交給方法的上一級處理,若上一級沒有處理,則繼續遞交到上一層,直到jvm處理該異常;
若要自定義異常物件,不使用系統內建的異常庫(有時我們需要自己定義的異常現象,如當某個值超出500,將觸發異常,這在內建庫中沒有定義),可以在方法內某個語句後加上:throw new Exception();丟擲異常,此時會跳入相應的catch語句塊進行異常的處理;
可以寫一個繼承了Exception類的異常類,定義我們自己的異常處理提示資訊;結合上一點使用,更有意義。