SpringMVC自定义异常处理器简单模板

2022-12-21 08:55:05 浏览数 (1)

注解版本(SpringBoot同样适用)

  • 使用 @ControllerAdvice 注解
  • 模板代码如下
代码语言:javascript复制
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import javax.servlet.http.HttpServletRequest;

@ControllerAdvice // 对controller中的方法做增强,做异常处理的增强
public class ControllerExceptionAdvice {

    @ExceptionHandler(Exception.class) //但凡出现Exception异常就会进入到此方法
    public String exceptionHandler(HttpServletRequest request,Exception ex){
    	//异常内容
        String message = ex.getMessage();
        
        //将内容设置到request域中
        request.setAttribute("errorMsg",message);
        
		// 转发到异常页面
        return "forward:/error.jsp";
    }

}

千万不要忘了,一定要扫到你也的类,不然不生效!!!

继承 HandlerExceptionResolver 版本

  • HandlerExceptionResolver
  • 要实现里面的一个方法
  • 模板代码如下
代码语言:javascript复制
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 统一异常处理
 */
public class MyException implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        
        ModelAndView modelAndView = new ModelAndView();
		
		//将异常信息添加到域中
        modelAndView.addObject("errorex",ex.getMessage());

        modelAndView.setViewName("error");
		//返回视图
        return modelAndView;
    }
}

添加到springMVC的配置文件中

代码语言:javascript复制
<!--    统一异常处理-->
    <bean class="cn.itcsdn.exception.MyException"/>

0 人点赞