SpringMVC中的全局异常处理
程序员文章站
2022-04-01 10:42:48
...
简述
在开发中,如果没有对异常进行封装的话,那么我们的异常堆栈就会暴露到客户端中,这些信息可能会包括我们的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;
}
}
下一篇: 聚焦生态价值 网酒网荣膺财经峰会两项大奖