springMVC全局异常处理器

1、 springMVC提供全局异常处理器

一个系统只有一个进行统一异常处理

2、 定义自定义异常类,继承Exception类

public class SystemException extends Exception {
    // 抛出异常信息
    private String message;
    
    public SystemException() {
    }

    public SystemException(String message) {
        super(message);
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

3、 定义全局异常处理器,实现HandlerExceptionResolver

public class SystemExceptionResolver implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest req,
            HttpServletResponse resp, Object handler, Exception ex) {
        // 解析出异常类型
        SystemException systemException = null;
        if(ex instanceof SystemException) {
            systemException = (SystemException) ex;
        }else {
            systemException = new SystemException("该资源已丢失,请联系管理员!");
        }
        
        // 错误信息
        String message = systemException.getMessage();
        // 将错误信息传到页面
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg", message);
        mv.setViewName("error");
        return mv;
    }

}

4、 Springmvc配置文件

    <!-- 配置全局异常处理器 -->
    <bean class="com.yxxy.exception.SystemExceptionResolver"></bean>

5、 测试代码

@Controller
@RequestMapping("/springmvc")
public class UserController {

    @RequestMapping("/exception")
    public void exception() throws SystemException {
        throw new SystemException("这是一个自己的任性异常!");
    }
    
}

 

posted @ 2018-07-08 21:20  莯汐  阅读(205)  评论(0)    收藏  举报