谈java Throwable
2015-09-26 21:16
477 查看
java语言中,异常的分类如下:
第一个层级:Throwable
第二个层级:Error,Exception
第三个层级:Error的子类,RuntimeException,自定义异常(继承Exception)
RuntimeException异常是unchecked异常,可以不用在方法签名上进行生命,可以在合适的地方直接抛出,
自定义的异常(继承Exception)是checked异常,必须check,必须进行处理。
关于异常之间的转换,普通的自定义异常转换成RuntimeException,这里不做介绍。
关于异常的价值,我总结如下,
1.异常可以让我们知道,程序可能会在什么地方(将异常写到日志文件中),什么环节出现问题,虽然事实上出现这种问题的可能性可大可小,甚至从来都不会发生。
2.捕获异常,可以让我们事先来处理异常发生时,我们可以做点什么,比如中断程序继续执行(上抛异常,上抛到让用户可知,可接受),或者改变程序的执行逻辑,原先的执行路线改变。
总结:我觉得异常(对象)的存在(我们创建的异常对象),让我们能够在异常事件发生前做好尽量好的容错,尽量好的编码,尽量好的强壮,总之,利用好异常,我们可以做到未雨绸缪。
如果,你不知道怎么在什么时候定义一个方法是否抛出异常,不知道你抛出的异常的价值在哪里,那么就算抛出异常,只会让你觉得有点乱,有点画龙点睛,多此一举,可有可无,多想想异常的价值,好好利用吧。
第一个层级:Throwable
第二个层级:Error,Exception
第三个层级:Error的子类,RuntimeException,自定义异常(继承Exception)
RuntimeException异常是unchecked异常,可以不用在方法签名上进行生命,可以在合适的地方直接抛出,
自定义的异常(继承Exception)是checked异常,必须check,必须进行处理。
关于异常之间的转换,普通的自定义异常转换成RuntimeException,这里不做介绍。
关于异常的价值,我总结如下,
1.异常可以让我们知道,程序可能会在什么地方(将异常写到日志文件中),什么环节出现问题,虽然事实上出现这种问题的可能性可大可小,甚至从来都不会发生。
2.捕获异常,可以让我们事先来处理异常发生时,我们可以做点什么,比如中断程序继续执行(上抛异常,上抛到让用户可知,可接受),或者改变程序的执行逻辑,原先的执行路线改变。
总结:我觉得异常(对象)的存在(我们创建的异常对象),让我们能够在异常事件发生前做好尽量好的容错,尽量好的编码,尽量好的强壮,总之,利用好异常,我们可以做到未雨绸缪。
如果,你不知道怎么在什么时候定义一个方法是否抛出异常,不知道你抛出的异常的价值在哪里,那么就算抛出异常,只会让你觉得有点乱,有点画龙点睛,多此一举,可有可无,多想想异常的价值,好好利用吧。
相关文章推荐
- java学习之IO流3
- java求几个数字的和输出详细步骤
- 基于struts框架的文件上传
- JAVA语言基础知识总结
- java实训感想
- Java设计模式(三)-修饰模式
- spring与mybatis四种整合方法
- Java中equals和==的区别
- JAVA经BigDecimal圆角的解决方案及注意事项
- java 几个数相加求和
- JDK windows环境变量配置
- Java多个数相加源代码流程图设计思想
- 解决Spring配置文件无法读取properties属性问题
- java对象序列化
- struts2中的输入校验小例子
- java解压多目录Zip文件(解决中文乱码问题)--转载
- Java开发中23中设计模式
- 学java 的感受
- java 添加一个线程、创建响应的用户界面 。 演示示例代码
- java学习笔记--类与接口