通常开发项目时如果代码有错的话,可能会在页面中显示出详细的异常错误信息并且会定位到自己的项目代码中详细的第几行出错可能也会在展示页面中出现,这样子不利于代码的安全性。
所以常常使用实现接口HandlerExceptionResolver的方法:
1 /** 2 * @author 大神爱吃茶 3 * @Date 2020/1/10 0010 下午 16:53 4 */ 5 @Component 6 public class ExceptionResolver implements HandlerExceptionResolver { 7 8 private static Logger logger = LoggerFactory.getLogger(ExceptionResolver.class); 9 10 @Override 11 public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { 12 //说明此URI发生了异常,并把异常通过ex打印到控制台上面 13 logger.error("{} Exception",request.getRequestURI(), ex); 14 ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView()); 15 modelAndView.addObject("status", ResponseCode.ERROR.getCode()); 16 modelAndView.addObject("msg", "接口异常,详情请查看服务日志"); 17 modelAndView.addObject("data", ex.toString()); 18 return modelAndView; 19 } 20 }
效果: