我們處理異常還可以使用try…catch…finally語句,當程式執行到錯誤代碼的地方,系統會拋出一個異常對象,程序轉入catch塊進行逐個匹配,如果匹配成功,程序則執行catch代碼,如果匹配失敗,程式則也給Java虛擬機器處理。
try…catch…finally語句的格式如下:try{//包含可能發生異常的語句}catch(異常類別名稱異常物件){//異常處理的程式碼}finally{//一定執行的程式碼}
注意事項:
1)try塊程式碼盡量越少越好。
2)一旦try塊程式碼中出現異常,無論try塊後面有多少行程式碼,都不會被執行。
3)catch區塊中異常參數匹配同樣滿足多態Exception e = new ArithmeticException(/by zero);
4) try區塊只能夠有一個, catch區塊可以有多個,try可以和catch組合,try可以和finally組合,try可以和catch和finally組合。
5)一般會把Exception當catch的參數類型放在異常處理格式的最後。
6) Execption作為父類別異常參數只能夠出現在異常的最後面,先子類別後父類別。
7) finally修飾的程式碼區塊一定會被執行,除非在執行到finally之前程式異常退出或呼叫了系統退出的方法。
8)在try語句中,在執行return語句時,要傳回的結果已經準備好了,就在此時,程式轉到finally執行了。在轉去之前,try中先把要回傳的結果存放到不同於x的局部變數中去,執行完finally之後,在從中取出返回結果,因此,即使finally中對變數x進行了改變,但是不會影響回傳結果,應該使用堆疊保存回傳值。