异常不要用来做流程控制,条件控制

异常机制的引入完善了Java语言的设计。

在理想状态下,用户输入永远正确,程序逻辑永远不出错,外部设备永远工作正常,所有的处理都是按照正确的路线运行,这样的程序确实不需要异常处理,但是现实世界中的程序充满了不良数据和问题代码,会时不时的报出错误,这个时候,语言的异常处理机制就可以派上用场了。

一、异常设计的初衷

异常是用在方法设计上的,是在方法执行过程中出现预期之外的结果时产生,这个界限难以清晰的界定,所以大家在使用异常的时候才会产生疑惑。总体来说,就是在可能出现一些不可控的错误且不能继续执行时,就可以以抛出异常的方式来处理。对于应用开发者来说,设计一个函数抛出异常的原因是因为调用了抛出异常的函数,不得不抛出来,第二个原因就是本身逻辑出现了无法忽略错误,须交给上游处理。一些可以通过检查的异常,就不要去try catch了,比如NullPointerException,比如这类代码是要禁止的;try { obj.method(); } catch (NullPointerException e) {…}

二、异常用作流程控制

try{...} catch(NullPointerException e){ fun(); }
也就是说,不要在catch中做业务逻辑运算,因为异常是用来解决程序中不可控的意外情况,而不是给你做条件分支的,同时,异常的处理效率比条件判断方式要慢很多。实际这么使用的的情况还是比较少。

三、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值