1. 程式人生 > >[19]try catch finally 組合

[19]try catch finally 組合

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中