欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC中的全局异常处理

程序员文章站 2022-04-01 10:42:48
...

简述

在开发中,如果没有对异常进行封装的话,那么我们的异常堆栈就会暴露到客户端中,这些信息可能会包括我们的sql语句,包结构信息等敏感信息,那么异常的的处理尤为重要了。那接下就是需要思考的就是,我们应该在哪里处理异常呢?在我们的业务层中,我们可以封装一些自定义的异常,方便我们记录日志信息和快速定位。对于发生了异常应该返回客户端那些信息呢?这时我们可以编写一个全局异常来封装返回给前端的modelAndView。
SpringMVC中的全局异常处理

实现

demo

public class ExceptionResolver implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        log.error("The Request:{} Exception:--> ",request.getRequestURI(),ex);
        ModelAndView modelAndView = new ModelAndView(new MappingJacksonJsonView());//注意:当使用是jackson2.x的时候使用MappingJackson2JsonView
        modelAndView.addObject("status", ResponseCode.Exception.getCode());
        modelAndView.addObject("msg","接口异常,请联系后端维护人员");
        modelAndView.addObject("data",ex.toString());
        return modelAndView;
    }
}
相关标签: 全局异常