七、springmvc之异常处理

七、springmvc之异常处理

1.概述

1.自定义了一个异常
     继承Exception
2.定义异常处理器
    1)实现:HandlerExceptionResolver
    2)实现抽象方法:resolveException
        * 返回值ModelAnView
            i:  异常信息      (model)
            ii:公共的错误页面 (view)
3.配置异常处理器
    将自定义的异常处理器交给spring容器管理
4)异常处理原则
* 在service,dao向上抛出异常
* 在web层捕获异常,抛出自定义的异常信息

2简单的自定义异常

public class MyException extends Exception{

    private String message;

    /**
     * 抛出该自定义异常,必须写名提示信息
     */
    public String getMessage() {
        return message;
    }

    public MyException(String message) {
        this.message = message;
    }


}

3自定义异常处理器

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
/**
 * 自定义的异常解析器
 *  * 实现HandlerExceptionResolver接口
 *  * 实现方法   resolveException
 *    参数:       request:
 *              response
 *              ex
 *  * 处理异常信息,
 *  
 *  * 配置异常处理器生效
 *
 */
public class customExceptionHandler implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
            Exception ex) {
        ModelAndView mv = new ModelAndView();
        if (ex instanceof MyException) {
            mv.addObject("msgs", ex.getMessage());
            mv.setViewName("forward:/error.jsp");
        }else {
            mv.addObject("msgs", "发生异常了");
            mv.setViewName("forward:/error.jsp");
            ex.printStackTrace();
        }
        return mv;
    }

}

4配置异常处理器

    <!-- 配置异常解析器 -->
    <bean id="exceptionHandler" class="cn.it.demo.exception.customExceptionHandler"></bean>

猜你喜欢

转载自blog.csdn.net/houysx/article/details/80157611
今日推荐