throw与throws的区别,什么时候用?
void foo() throws FooException{
//other code
throw new FooException();
}
网上的解释我综合一下是
throw语句用在方法体内,表示抛出异常,由方法体内的语句处理
throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理
可是上面程序里面方法后面用throws抛出异常了,方法里面的语句为什么还要抛出一个同样的异常吗?按照上面的解释在方法后面声明了之后就交给调用这个方法的上级去处理了,在方法语句里面声明的是由这个方法来处理,所以抛出一个就可以了,为什么要抛出两个。
还有我在方法后面抛出的是一个异常类,在方法语句里面抛出的是一个异常类的对象,这两个抛出异常的方法究竟由什么区别呀?为什么要又两种抛出异常的方式?