声明抛出异常

1、声明

(1)定义一个类的方法的时候,可以指定这个方法可能抛出什么异常

(2)例如FileInputStream是通过流来读取一个文件,读文件的话,name这会传一个文件路径过来,但是这个路径下面的文件可能不存在,因此这个构造方法可能会错,因此通过FileNoFoundException告诉编译器可能会有什么错误。


2、什么时候需要使用throws呢?

(1)在FileInputStream类中,有很多重载的构造函数,在这些重载的构造函数中,有throws声明,throws FileNotFoundException, FileNotFoundException是Exception的子类,不是RuntimeException的子类,是一个需要checked的异常

(2)在new的时候,就会调用其构造方法了,这个构造方法会可能抛出一个checked异常,在main方法中,调用了FileInputStream的构造方法,而这个构造方法又可能抛一个checked异常。

(3)保存之后,会报错,改法1

  • 添加了上面的话之后,代表main中也可能会抛出异常
  • 因为main中调用了FileInputStream构造方法,这个构造方法会调用一个FileNotFoundException这样一个checked异常,但是这个代码里面没有进行try、catch处理,调用的方法里面又可能会出现异常,说明main方法中也可能出现FileNotFoundException异常,因此main中也要throw。
  • 调用一个已抛出异常的方法,但是没有try、catch,也就是没有进行相应的处理,这个时候,这个方法所在的方法也需要抛出异常

(4)保存之后,会报错,改法2

可能出现异常,那么我们就进行相应的处理

(3)和(4)的改法都是针对已检查异常来说的,对于未检查异常则不需要做相应的改动。

(5)抛出多个异常的话,用“,”分隔开 

(6)对于unchecked异常

按理说,既然已经声明了这么一个异常,那么divide中就应该抛出异常。

但是这样也对,因为ArithmeticExteption是uncheckedException,所以不需要main抛出异常。


3、RuntimeException

可以进行try、catch处理,同时也可以在divide方法中抛出异常,同样这些都不做也正确


4、非RuntimeException


5、总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值