throw 和 throws 都与异常处理有关,但它们的用法和含义不同。
两者的区别
throw 在方法体内使用,throws 在方法声明上使用。
throw 后面接的是异常对象,只能接一个。throws 后面接的是异常类型,可以接多个,多个异常类型用逗号隔开。
throw 是在方法中出现不正确情况时,手动来抛出异常,结束方法的,执行了 throw 语句一定会出现异常。而 throws 是用来声明当前方法有可能会出现某种异常的,如果出现了相应的异常,将由调用者来处理,声明了异常不一定会出现异常。
throw 是一个关键字,用于抛出一个异常对象,示例如下:
java
throw new Exception("抛出一个异常");
throws 是一个关键字,用于声明方法可能会抛出的异常类型,示例如下:
java
public void method() throws Exception {
// 方法体
}
throws 是用在某个方法的方法声明上的,表示当前方法如果抛出了某些异常,将由调用者来进行异常处理。这种方式也可以让调用者知晓该对哪些异常进行处理。throws 声明的异常不一定会出现,只是一种可能。
java
//调用者处理异常,有两种处理方式
//第一种就是再次抛出
//第二种用try和catch环绕
public static void main(String[] args) throws Exception{
try {
Demo1();
} catch (ArithmeticException e) {
System.out.println(e.getMessage());
}
}
// 定义方法时,throws声明该方法可能抛出的异常类型
// Exception包含所有异常类型
public static void Demo1() throws ArithmeticException{
int i=1/0;
System.out.println(i);
}
throw 是用在某个方法的方法体内的,当我们认定某种情况不合理时,就可以创建异常对象,封装好异常信息,然后通过 throw 来抛出异常并终止该方法。
java
public static void Demo2(int age){
if(age<0||age>100){
//throw用在Demo2(int age)方法的方法体内
//括号里面提示出的什么问题
throw new ArithmeticException("年龄不合法");
}
}