一、SpringMVC异常处理的思路
系统的Dao、Service、Controller层的异常都通过throws Exception向上抛出,
最后由SpringMVC前端控制器交给异常处理器进行处理。
SpringMVC的异常处理主要有两种方式:
- 使用SpringMVC提供的简单异常处理器SimpleMappingExceptionResolver
- 实现SpringMVC的异常处理结构HandlerExceptionResolver自定义一个异常处理器
二、简单异常处理器SimpleMappingExceptionResolver
这个处理器需要在spring-mvc.xml中配置,它的功能是将各种异常类型映射到相应的错误页面
(由于我已经配置过内部资源视图解析器,所以图中的error1和error2会分别解析成/error1.jsp和/error2.jsp)
三、实现HandlerExceptionResolver接口自定义异常处理器
1.实现这个接口的resolveException()方法,
这里面有一个重要的参数ex和重要的返回值,在这个方法中根据具体的业务去处理各种类型的异常:
public class MyExceptionResolver implements HandlerExceptionResolver {
@Override
// 参数Exception ex是报异常的异常对象,返回值ModelAndView就是要跳转的错误视图的信息
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
ModelAndView modelAndView = new ModelAndView();
if(ex instanceof MyException){
modelAndView.addobject("info", "自定义的异常");
}else if (ex instanceof ClassCastException){
modelAndView.addobject("info", "类转换异常");
}
modelAndView.setViewName("error");
return modelAndView;
}
}
2.自定义的异常处理器也需要在spring-mvc.xml中配置:
<!--自定义异常处理器-->
<bean class="com.lxl.controller.resolver.MyExceptionResolver"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。