首页 > 技术文章 > SpringMVC的异常处理

jinchengll 2019-11-04 15:31 原文

1、异常处理的思路

  1. Controller调用Service,Service调用Dao,异常都是向上抛出的,最终由DispatcherServlet找异常处理器进行异常的处理。

2、SpringMVC的异常处理

  1. 编写自定义异常类(做提示信息的)

    /**
     * 自定义的异常类
     * Create by ljc on 2019/11/4
     */
    public class SysException extends Exception
    {
        // 异常提示信息
        private String message;
    
        @Override
        public String getMessage()
        {
            return message;
        }
    
        public void setMessage(String message)
        {
            this.message = message;
        }
    
        public SysException(String message)
        {
            this.message = message;
        }
    }
    
  2. 编写异常处理器

    public class SysExceptionResolver implements HandlerExceptionResolver
    {
        @Override
        public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
        {
            //获取到异常对象
            SysException e = null;
            if (ex instanceof SysException)
            {
                e = (SysException) ex;
            } else
            {
                e = new SysException("系统正在维护");
            }
            //创建ModelAndView对象
            ModelAndView mv = new ModelAndView();
            mv.addObject("errorMsg", e);
            mv.setViewName("error");
            return mv;
        }
    }
    
  3. 配置异常处理器(跳转到提示页面)

    在springmvc.xml文件中配置:

    <!--配置异常处理器-->
    <bean id="sysExceptionResolver" class="com.lin.excepion.SysExceptionResolver"/>
    

    也可以使用@Component的注解来实现。

推荐阅读