spring mvc配置全局异常处理器

来源:互联网 发布:linux配置tomcat 编辑:程序博客网 时间:2024/06/01 08:30

spring mvc配置全局异常处理器


      • spring mvc配置全局异常处理器
        • 概述
        • 方法


概述


异常分为两种,一种是我们能够通过规范代码的书写、条件的判断就能够完成的,另外一种是在运行过程中发生的,这种异常不能预期,但是我们需要处理这些异常,不能将错误直接抛出给用户,通常情况下能有好的用户体验,该篇文章主要解决的是全局的异常处理。

方法


  • 首先定义自定义的异常类
public class CustomException extends Exception {    //异常信息    public String message;    public CustomException(String message) {        super(message);          this.message = message;    }    public String getMessage() {        return message;    }    public void setMessage(String message) {        this.message = message;    }}
  • 实现HandlerExceptionResolver接口
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;public class HandlerException implements HandlerExceptionResolver {    @Override    public ModelAndView resolveException(HttpServletRequest request,            HttpServletResponse response, Object handler, Exception exception) {        CustomException customException = null;        if (exception instanceof CustomException) {            customException = (CustomException)exception;        }else {            customException = new CustomException("未知错误");        }        String message = customException.getMessage();   //获取到错误信息        ModelAndView modelAndView = new ModelAndView();        modelAndView.addObject("message", message);        modelAndView.setViewName("error");    //error是逻辑视图名,视图解析器会将其解析为真正的物理视图error.jsp        return modelAndView;    }}
  • 在dao、service、controller的每个方法声明中都要规范成下面的格式
return_type method_name(params ...) throws Exception{    method_body;}
  • 最后要在springmvc的配置文件中配置HandlerException的bean
<!-- 配置全局异常处理器 --><bean class="HandlerException类的全限定名"></bean>
0 0
原创粉丝点击