我们先来直观的看看他们之间的用法:
throw:一般出现在方法体内,并且在使用的时候是以抛出异常对象为结束,后面的代码不会再执行,比如:
public void suncat(){
if(users.isEmpty()){
Throw new RuntimeException("用户列表不能为空");
}
}
throws:一般出现在方法名字后,表示方法内的异常不做处理,抛给那些调用该方法的程序。比如:
public static void function() throws NumberFormatException {
System.out.println(Double.parseDouble("a78s"));
}
从上述可以看出他们的区别:
throw | throws | |
用处 | 用于方法内部,出现在函数体 | 用于方法声明上,现在方法函数头 |
后面跟的对象 | 后跟异常对象,只能跟一个异常对象 | 后跟异常类型,可以一次声明多种异常类型 |
是否会立刻抛出异常 | 抛出了异常,执行throw则一定抛出了某种异常对象。 | 只是一种可能性,并不一定会发生这些异常 |