SpringMVC学习-8
Spring MVC处理异常有3种方式
- 使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver;
- 实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器;
- 使用@ExceptionHandler注解实现异常处理;
- Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进 行异常的处理
使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver
在SpringMVC配置文件中添加配置
1 | <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> |
实现HandlerExceptionResolver 接口自定义异常处理器
实现HanderExceptionResolver接口
配置SpringMVC配置文件
<bean id="sysExceptionResolver" class="com.kylin.exception.SysExceptionResolver"/>
使用@ExceptionHandler注解实现异常处理
由于单独使用只能处理 Controller 层未捕获(往外抛)的异常,对于 Interceptor(拦截器)层的异常,Spring 框架层的异常,就无能为力了,只能在当前Controller中处理异常。但当配合@ControllerAdvice
一起使用的时候,就可以摆脱那个限制了。
总结
综合上述可知,Spring MVC集成异常处理3种方式都可以达到统一异常处理的目标。从3种方式的优缺点比较,若只需要简单的集成异常处理,推荐使用SimpleMappingExceptionResolver即可;若需要集成的异常处理能够更具个性化,提供给用户更详细的异常信息,推荐自定义实现HandlerExceptionResolver接口的方式;若不喜欢Spring配置文件或要实现“零配置”,且能接受对原有代码的适当入侵,则建议使用@ExceptionHandler注解方式。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylin!
评论