异常不要用来做流程控制,条件控制
异常机制的引入完善了Java语言的设计。
在理想状态下,用户输入永远正确,程序逻辑永远不出错,外部设备永远工作正常,所有的处理都是按照正确的路线运行,这样的程序确实不需要异常处理,但是现实世界中的程序充满了不良数据和问题代码,会时不时的报出错误,这个时候,语言的异常处理机制就可以派上用场了。
一、异常设计的初衷
异常是用在方法设计上的,是在方法执行过程中出现预期之外的结果时产生,这个界限难以清晰的界定,所以大家在使用异常的时候才会产生疑惑。总体来说,就是在可能出现一些不可控的错误且不能继续执行时,就可以以抛出异常的方式来处理。对于应用开发者来说,设计一个函数抛出异常的原因是因为调用了抛出异常的函数,不得不抛出来,第二个原因就是本身逻辑出现了无法忽略错误,须交给上游处理。一些可以通过检查的异常,就不要去try catch了,比如NullPointerException,比如这类代码是要禁止的;try { obj.method(); } catch (NullPointerException e) {…}
二、异常用作流程控制
try{...} catch(NullPointerException e){ fun(); }
也就是说,不要在catch中做业务逻辑运算,因为异常是用来解决程序中不可控的意外情况,而不是给你做条件分支的,同时,异常的处理效率比条件判断方式要慢很多。实际这么使用的的情况还是比较少。
三、
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
