【雨夜】业务中 自定义异常用 Exception 还是 RuntimeException? 为什么?

今天和同事 聊了下异常 相关的事,整理在此

 目前公司中使用的 自定义异常是 extend RuntimeException 

目录 思维导图

继承异常

我们在业务开发中 继承异常是extend RuntimeException 还是 Exception呢

一想 这肯定是 RuntimeException 啊,但是这是为什么呢? 选择 Exception 不行么?

RuntimeException和Exception区别

聊这个之前 我们需要确定我们的需求是什么

需求

需求是 自定义一个 业务中使用的异常

确定了需求 接下来我们就要分析

到这里 知道 我们业务开发 基本都是运行时异常 所以用 RuntimeException

到这里有一个疑问,我们平时 IO操作的时候 动不动就爆红 让我们throws 或者 try catch,是哪个属性做到的?

首先看一段代码

但是这个异常是因为createNewFile 方法 主动抛出的异常 和 是不是 RuntimeException 没关系啊

public boolean createNewFile() throws IOException {
    SecurityManager security = System.getSecurityManager();
    if (security != null) security.checkWrite(path);
    if (isInvalid()) {
        throw new IOException("Invalid file path");
    }
    return fs.createFileExclusively(path);
}
复制代码

是有关系的,非RuntimeException 都是需要throws 或者try catch 但是这个不是自动的,是开发人员写代码的时候 需要做的,代表这个异常是 必须被检查的

而其他需要注意的 引用 程序设计语言原理 书中 第434页的一部分

这块对于业务中使用哪个 先留一个疑问 往下看

怎么才算其他RuntimeException 代码上有什么区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值