1. 程式人生 > 其它 >Java基礎--如何在一個catch中捕獲多個異常

Java基礎--如何在一個catch中捕獲多個異常

1.介紹

  JDK1.7之後可以在一個catch語句中捕獲多個異常,通過"或"運算子"|"列出需要捕獲的多個異常。當對多個種類的異常有相同的處理時,這種寫法能是得程式碼簡潔易讀。

  但是需要注意的是,這多個異常的級別需要相同,不能是繼承的關係。

2.舉例

    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        try {
            int c = a / b;
        } catch (ArithmeticException | NullPointerException  e) {
            System.out.println(e.getClass());
            System.out.println(
"Catch it!"); } }

輸出的結果:

class java.lang.ArithmeticException
Catch it!

3.注意捕獲的多個異常的級別要相同,否則會編譯報錯

報錯樣例:

    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        try {
            int c = a / b;
            // 類ArithmeticException 繼承 類RuntimeException,所以不能放在一個catch中
            
// 會編譯報錯 } catch (ArithmeticException | RuntimeException e) { System.out.println(e.getClass()); System.out.println("Catch it!"); } }

IDE提示報錯: