spring mvc配置全局异常处理器

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>

你可能感兴趣的:(JavaScript,Java)