课程
/后端开发
/Java
/Spring Boot进阶之Web进阶
不建议用异常做流程控制吧,刚进公司的时候coding style上就有一条不要用异常做流程控制,会影响性能,但具体会影响多少我也没有测试过,希望有经验的兄弟可以解释一下?
2017-10-13
源自:Spring Boot进阶之Web进阶 2-5
正在回答
我觉得关键是对异常的理解~数据格式不符合要求算是一种异常,那么年龄不在期望范围内算不算异常呢?如何可以接受这种情况,并做出相应业务处理,那么应该算是流程控制(毕竟有后续流程等着它嘛),但是如果系统根本不想处理这种情况,也就是没有后续的业务逻辑了,那么应该就算是异常了吧。
老师的这种处理,真的看起来像是流程控制,但是,也可以将其理解为异常吧。
至于题主的问题,异常对程序性能的影响,应该和Java虚拟机对异常的处理有关,至于细节,我还得学习一波。
记得effectiveJava上有说过这个问题,可以去看一下。程序出现问题抛出异常也比较符合面向对象的一个概念。个人认为底层采用抛出不同类型的异常对出现的问题进行一个详细的划分供上层调用者处理是一个很好的处理方式。而你提到的不要用异常做流程控制指的是有些问题可以通过判断对不同的情况进行不同流程的处理。而不是说当程序异常时认为是另一种情况然后在catch中做大量的业务逻辑处理。这样是不对的。
举报
《2小时学习Spring Boot》之进阶教程,针对Web方面的相关技巧
1 回答用抛出异常来控制流程这样好么
1 回答为啥我把异常抛出了,网页端没显示任何数据,控制台也不显示
2 回答code用常量类声明常量处理好还是用枚举好?
1 回答空指针异常
3 回答为什么要这样做?