今天和同事 聊了下异常 相关的事,整理在此
目前公司中使用的 自定义异常是 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页的一部分
这块对于业务中使用哪个 先留一个疑问 往下看