SpringMVC中的全局异常处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ycd500756/article/details/82250810

简述

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

实现

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;
    }
}

猜你喜欢

转载自blog.csdn.net/ycd500756/article/details/82250810
今日推荐