Java异常什么时候抛出,什么时候捕获

找了半天CSDN都找不到关于Java异常什么时候抛出,什么时候捕获的答案,我就根据网上找的资料和自己的理解写下这篇文章,加深印象。

Java异常处理原则之一:延迟捕获

意思是,当异常发生时不会立即捕获,而是应该考虑当前作用域是否有能力处理这一异常,如果没有,则应该将该异常向上抛出,交由更上层的作用域来处理。
一个例子:
某方法String readFile(String filename),会去读取指定文件的内容并且返回,若其使用FileInputStream来读取指定文件,而FileInputStream的构造方法会抛出FileNotFoundException,这是一个CheckedException。
那么readFile方法是应该捕获这个异常,还是抛出这个异常呢?
答案是抛出。因为readFile这个方法可能会在不同的场景下,被不同的代码调用。在这些场景中,出现"文件未被找到"的处理逻辑可能是不一样的。只有抛出之后再捕获才可以获得多种多样的处理方式,若直接捕获那么就只有那一种固定的处理方式了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值