微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMVC的异常处理

一、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] 举报,一经查实,本站将立刻删除。

相关推荐