[19]try catch finally 組合
阿新 • • 發佈:2018-11-12
catch程式碼塊中是用來處理異常的,但是有一種情況不一定會執行catch中的內容,如
public class Demo{
public static void main(String[] args){
try{
//code
}catch(Exception e){
return ;//用於停止程式碼
}
System.out.println("Hello World");
}
}
那麼Hello World將無法執行。所以加上finally程式碼塊,無論怎麼樣都會執行。
特殊情況:就算是finally也無法執行。
try{
//code
}catch(Exception e){
System.exit(0);//結束jvm
}finally{
System.out.println("Hello World");//無法執行
}
1.try catch:對程式碼進行檢測,並對檢測的異常傳遞給catch對異常進行捕獲處理。
3.try catch finally:檢測異常,並將異常捕獲處理,並將資源釋放。
2.try finally:對程式碼進行異常檢測,但是檢測到異常後沒有catch處理不了。所以一樣會被預設jvm丟擲,需要在方法中宣告。
因為異常時沒有catch來捕獲處理的。finally只用於關閉資源
【例子】
我們開軟體,因為開的過多,導致軟體開不出來(未響應)。所以一般是將異常宣告給呼叫者windows系統,但是我們要關掉軟體。不然會一直佔用記憶體。所以finally是用於關閉資源。
具體:只要程式用到了資源(資料庫連線,IO資源,網路連線socket等)中,需要釋放資源的,都寫到finally中