谈java Throwable

java语言中,异常的分类如下:
第一个层级:Throwable
第二个层级:Error,Exception
第三个层级:Error的子类,RuntimeException,自定义异常(继承Exception)

RuntimeException异常是unchecked异常,可以不用在方法签名上进行生命,可以在合适的地方直接抛出,
自定义的异常(继承Exception)是checked异常,必须check,必须进行处理。

关于异常之间的转换,普通的自定义异常转换成RuntimeException,这里不做介绍。

关于异常的价值,我总结如下,
1.异常可以让我们知道,程序可能会在什么地方(将异常写到日志文件中),什么环节出现问题,虽然事实上出现这种问题的可能性可大可小,甚至从来都不会发生。

2.捕获异常,可以让我们事先来处理异常发生时,我们可以做点什么,比如中断程序继续执行(上抛异常,上抛到让用户可知,可接受),或者改变程序的执行逻辑,原先的执行路线改变。

总结:我觉得异常(对象)的存在(我们创建的异常对象),让我们能够在异常事件发生前做好尽量好的容错,尽量好的编码,尽量好的强壮,总之,利用好异常,我们可以做到未雨绸缪。
如果,你不知道怎么在什么时候定义一个方法是否抛出异常,不知道你抛出的异常的价值在哪里,那么就算抛出异常,只会让你觉得有点乱,有点画龙点睛,多此一举,可有可无,多想想异常的价值,好好利用吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值