Java基礎--如何在一個catch中捕獲多個異常
阿新 • • 發佈:2022-02-22
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提示報錯: