分享人:卢静
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
先介绍下背景
异常分类
异常类分两大类型:Error类,Exception类
Error类代表了编译和系统的错误,不允许捕获;属于JVM运行中发生的一些错误,虽然并不属于开发人员的范畴,但是有些Error还是由代码引起的,比如StackOverflowError经常由递归操作引起
Exception分为两种,检查类型(checked)和未检查类型(unchecked)。检查类型的异常就是说要程序员明确的去声明或者用try..catch语句来处理的异常,而非检查类型的异常则没有这些限制。
异常的处理
针对预期可能发生的异常(检查类型(checked)),在代码手动处理异常可以try/catch捕获,可以向上抛出,可以声明。
针对运行时异常,只能通过规范代码质量、在系统测试时详细测试等排除运行时异常。
在Controller里,大段的Try Catch 会有什么坏处?
1.try catch 的代价比较大。相对于判断返回值,抛出异常到捕获,需要更多的cpu指令和代码
2.Java的异常机制是由JVM控制的,业务逻辑复杂的情况下,会影响controller的执行效率
1.用错误码控制业务流程,需要对每个接口的返回都要做一个错误码的校验。
2.自定义异常处理类,使用springMVC提供的统一的异常处理方式
springMVC官方也提供了基于注解的统一异常处理方式,但是对代码的入侵性较大。
springMVC官方也提供了基于注解的统一异常处理方式,但是对代码的入侵性较大。
参考连接:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
相关阅读:http://blog.csdn.net/column/details/spring-mvc.html
引用:学习笔记源码下载地址:https://github.com/eson15/SpringMVC_Study
感谢观看,如有出错,恳请指正
BY : 卢静