在复习过程中遇到了弄混throw和throws的问题。
现留一足迹以明确:
看下面一个例子:
1、throw用在方法体内,
throws用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。
2、throw是具体向外抛异常的,抛出的是一个异常实例
throws声明了是哪种类型的异常,使它的调用者可以捕获这个异常。
在这个例子中,如果i=0,则throw所在的语句抛出一个ArithmeticException,然后随即这个异常就被抛出到更上一级去处理。
注意这种使用方法必须保证throw语句处于一个try块,或者带throws声明的方法中。
还有以下两点不同:
3.throws可以抛出多种异常(相对throw抛出一种具体的异常)
4.throws表示抛出异常的一种可能性,而throw所在语句一旦被执行,则说明一定有异常被抛出。