在java的异常处理模块中,throw和throws都可以抛出异常,那么两者有什么区别呢?
先来说下throw抛出异常的方法:
这里要讲到是throw抛出异常的第一种方式,直接自抛自接,用try,catch接异常。
第二种方法就是直接在方法声明后面throws抛出异常。
从这两种方法抛出异常我们可以看到:
-
throw只能在方法体中使用,用来抛出异常对象。
-
一个方法中若使用了throw抛出异常,如异常时运行期异常(往往是由程序错误引起的),可以不加任何处理,如果是检测异常,那么有两种选择,使用try,catch捕获异常或者使用throws声明抛出异常,一般多选择throws声明抛出异常的方式处理。
下面介绍下throws:
-
throws关键字在方法声明处使用:如上图所示,throws后面接的是异常的类型;
-
throws可以声明多个异常,用逗号隔开;
如这样声明:void doIt(int age) throws ArithmeticException,Exception(){}
-
一个方法throws声明抛出异常后,那么调用该方法的时候必须处理声明的所有异常,可以使用try,catch逐一捕获或者继续使用throws进行声明。
再main里面可以继续抛出,但是原则上我们必须在main处理完异常。
4.任何方法都是可以使用throws,抽象方法也可以,在语法上没有要求。
5.方法覆盖的时候,如果子类覆盖了父类的方法,子类的方法不能声明抛出比父类更多的异常类型。如果声明的比父类更多的异常类型,编译器是通不过的。
好了今天就到这里~喜欢的关注一波~谢谢收看~
附上今天的十个单词:
year 年
hour 小时
minute 分钟
second 秒
random 随机
nextInt 下一个整数
gaussian 高斯
ArrayList 数组队列
LinkedList 链表
hash 哈希