10.Java–throws关键字
例30中,定义除法运算时,开发者通常会意识到可能出现的异常,可以直接通过try…catch对异常进行捕获处理,但有些时候,方法中代码是否会出现异常,开发者并不明确或者并不急于处理,为此,Java允许将这种异常从当前方法中抛出,然后让后续的调用者在使用时再进行异常处理。
在Java中,将异常抛出需要使用throws关键字来实现,该关键字用在会抛出异常的方法名称后,同时支持一次性抛出多种类型的异常,基本语法格式如下:
[修饰符] 返回值类型 方法名([参数类型 参数名1 ...]) throws 异常类1,异常类2,...{
//方法体...
}
从上述语法格式中可以看出,throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常。接下来对例30进行修改,在devide()方法_上声明抛出异常,如例31所示。
public class Example31 {
public static int divide(int x, int y) throws Exception {
int result = x / y;
return result;
}
public static void main(String[] args) {
try {
int result = divide(4, 0);
System.out.println(result);
}catch(Exception e) {
System.out.println("捕获的异常信息为:"+e.getMessage());
}
}
}
结果
如果在调用divide()方法时,并没有对异常进行处理而是继续使用throws关键字将异常抛出。程序虽然可以通过编译,但在运行时由于没有对“/byzero”的异常进行处理,最终导致程序终止运行。