在Java中,要在一個catch
塊中區分不同類型的異常,你可以使用多個catch
塊來捕獲特定類型的異常
public class Main {
public static void main(String[] args) {
try {
// 這里寫可能會拋出異常的代碼
int result = riskyOperation();
} catch (ArithmeticException e) {
// 處理算術異常(例如除數為零)
System.out.println("發生了算術異常: " + e.getMessage());
} catch (NullPointerException e) {
// 處理空指針異常
System.out.println("發生了空指針異常: " + e.getMessage());
} catch (Exception e) {
// 處理其他未知異常
System.out.println("發生了未知異常: " + e.getMessage());
}
}
public static int riskyOperation() {
// 這里模擬一個可能會拋出異常的方法
int a = 10;
int b = 0;
return a / b; // 這將拋出一個ArithmeticException(算術異常)
}
}
在這個示例中,我們首先嘗試執行riskyOperation()
方法。如果該方法拋出一個異常,程序將進入相應的catch
塊。我們分別為ArithmeticException
和NullPointerException
提供了catch
塊。如果拋出的異常與這兩種類型不匹配,它將被第三個catch
塊捕獲,該塊捕獲所有其他Exception
類型。
注意:在實踐中,您應該盡量捕獲更具體的異常類型,而不是捕獲通用的Exception
類型,因為這樣可以讓您更準確地處理不同類型的異常。