多重异常
throw
使用 throw 关键字可以手动生成方法中的异常。一些可用的异常类型包括 IndexOutOfBoundsException (非法索引访问数组时抛出的异常),IllegalArgumentException(非法参数异常),ArithmeticException(出现异常的运算条件时,抛出此异常) 等等。
例如,当参数为0时,我们可以在方法中抛出 ArithmeticException。
int div(int a, int b) throws ArithmeticException {
if(b == 0) {
throw new ArithmeticException("Division by Zero");
} else {
return a / b;
}
}
方法定义中的throws语句定义了方法可以抛出的Exception的类型。
接下来,throw关键字会引发相应的异常,并附带自定义消息。
如果我们调用第二个参数等于0的div方法,它将抛出一个ArithmeticException,并带有“Zero by Division”消息。
提示:可以使用逗号分隔列表在 throws 语句中定义多个异常。
异常处理
一个 try 代码块后面可以跟随多个 catch 代码块,这种情况就叫多重捕获,分别处理不同的异常。
多重捕获的语法如下所示:
try {
// 程序代码
} catch (异常类型1 异常的变量名1) {
// 程序代码
} catch (异常类型2 异常的变量名2) {
// 程序代码
} catch (异常类型3 异常的变量名3) {
// 程序代码
}
提示:所有 catch 块应该从最具体到最普遍的顺序排列。在特定的异常之后,您可以使用Exception类型来处理所有其他异常作为最后一个catch。