《Oracle Java SE编程指南》18-05:throw与

2020-04-30  本文已影响0人  AT阿宝哥
课程封面-JavaSE-AT阿宝哥

内容导航


前言

前面我们学习过,异常使用一些特殊类标记的,所谓发生异常,就是抛出一个异常类对象,JVM的异常机制能够识别这样的对象,并进行处理。

运行期异常都是JVM在运行时自行抛出的,而编译期异常都是程序员在编写代码时,通过语句自行抛出的。

本节将学习与抛异常相关的关键字。


1、throw

关键字throw用于显式抛出异常,利用抛出的异常来标记不正常的事件,从而对事件流统一处理。

语法:


throw new 异常类构造方法;

例如:


throw new Exception();

为什么要throw异常呢?主要是要用这种异常类型标记一些不正常的事件,而且希望这些事件发生时,一定能被调用者关注并处理。

throw抛出异常后,可以有两种方式处理:

示例代码:




2、throws

用于方法声明处,指出方法引发的异常。可以声明多种异常类型,用逗号分开即可。

示例:


public void test  throws  异常1,异常2,异常3{

}

用了throws关键字,相当于给一个方法加上了不安全标签。使得调用这个方法的方法必须处理这些类型的异常,否则将出现编译错误。当然,处理的方法也依然有两种,即try catch或者继续throws。


3、层层抛出异常

catch语句中,处理异常后,再次用throw抛出该异常对象。
继续抛出异常的作用:使得调用该方法的方法,能够再一次捕获并处理异常

图片.png

4、总结

throw用于方法体中,用来抛出一个实际的异常对象,使用throw后,要么使用try catch捕获异常,要么使用throws声明异常。

throws用于方法声明处,用来声明该方法可能发生的异常类型,可以是多个异常类型,用来强制调用该方法时处理这些异常。

抽象方法也可以使用throws,所以说并不是有throw才有throws。

如果使用throw关键字抛异常,一定不要使用Exception,不能很好标记异常类型。

如果throw要抛出与业务逻辑有关的异常,需要使用自定义异常类,后续学习


持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!


扫描二维码,关注AT阿宝哥
上一篇下一篇

猜你喜欢

热点阅读