SpringMVC的异常处理,自定义异常处理器

文章目录

    • 自定义异常处理器
    • 在springmvc.xml配置异常处理器(把创建的自定义异常处理器给Spring容器管理)

使用SpringMVC框架,Controller调用service,service调用dao,异常都是向上抛出的,最终由DispatcherServlet找异常处理器进行异常处理,如记录异常信息,或将异常信息存入到数据库或存入到日志文件中。

自定义异常处理器

实现HandlerExceptionResolver 接口

public class ExceptionHandler implements HandlerExceptionResolver {
     
    //异常处理
    @Override
    public ModelAndView resolveException(HttpServletRequest request,
                                         HttpServletResponse response,
                                         Object handler,  //发生异常的方法
                                         Exception ex) {
       //发生的异常信息

        //记录异常信息
        StringWriter stringWriter = new StringWriter();
        PrintWriter printWriter = new PrintWriter(stringWriter);
        //将异常信息输出到PrintWriter
        ex.printStackTrace(printWriter);

        //获取异常信息
        String errorMessage = stringWriter.toString();
        //异常信息输出到控制台
        System.out.println(errorMessage);

        //ModelAndView:逻辑数据和逻辑视图名字
        ModelAndView modelAndView = new ModelAndView();
        //存储逻辑数据
        modelAndView.addObject("message","系统繁忙,请稍后再试");
        //存储逻辑试图名
        modelAndView.setViewName("error");
        //跳转到该页面(error.jsp),jsp页面可显示存储的逻辑数据  ${message}
        return modelAndView;
    }
}

在springmvc.xml配置异常处理器(把创建的自定义异常处理器给Spring容器管理)

  	<!--将全局异常处理器交给SpringIOC容器-->
    <bean class="com.mycode.exception.ExceptionHandler" />

你可能感兴趣的:(#,SpringMVC)