首頁 >Java >java教程 >java怎麼捕獲異常

java怎麼捕獲異常

(*-*)浩
(*-*)浩原創
2019-11-28 15:22:463538瀏覽

在Java中,凡是可能拋出異常的語句,都可以用try ... catch捕捉。把可能發生異常的語句放在try { ... }中,然後使用catch捕捉對應的Exception及其子類別。

java怎麼捕獲異常

多catch語句

可以使用多個catch語句,每個catch分別捕獲對應的Exception及其子類別。 JVM在捕獲到異常後,會從上到下匹配catch語句,匹配到某個catch後,執行catch程式碼區塊,然後不再繼續匹配。               (建議學習:java課程

簡單來說是:多個catch語句只有一個能執行。例如:

public static void main(String[] args) {    try {
        process1();
        process2();
        process3();
    } catch (IOException e) {
        System.out.println(e);
    } catch (NumberFormatException e) {
        System.out.println(e);
    }
}

存在多個catch的時候,catch的順序非常重要:子類別必須寫在前面。例如:

public static void main(String[] args) {
    try {
        process1();
        process2();
        process3();
    } catch (IOException e) {
        System.out.println("IO error");
    } catch (UnsupportedEncodingException e) { // 永远捕获不到
        System.out.println("Bad encoding");
    }
}

對於上面的程式碼,UnsupportedEncodingException異常是永遠捕獲不到的,因為它是IOException的子類別。當拋出UnsupportedEncodingException異常時,會被catch (IOException e) { ... }捕獲並執行。

因此,正確的寫法是把子類別放到前面:

public static void main(String[] args) {    try {
        process1();
        process2();
        process3();
    } catch (UnsupportedEncodingException e) {
        System.out.println("Bad encoding");
    } catch (IOException e) {
        System.out.println("IO error");
    }
}

以上是java怎麼捕獲異常的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn