@RestControllerAdvice(annotations = RestController.class) @Slf4j public class GlobalExceptionHandler { /** * 全局异常捕捉处理 * @param ex * @return */ @ExceptionHandler(value = Exception.class) @ResponseBody public DataResponse<Boolean> errorHandler(HttpServletRequest req, Exception ex) { Map map = new HashMap(); map.put("code", 500); map.put("ex",ex); map.put("message", ex.getMessage()); map.put("url", req.getRequestURL()); log.error("发生异常:{}",JSON.toJSONString(map)); return DataResponse.builderFailed(ex.getMessage()); } }
@RestControllerAdvice(annotations = RestController.class) @Slf4j public class GlobalExceptionInterceptor { /** * 捕获自定义异常,返回json信息 */ @ExceptionHandler({MamchargeException.class}) @ResponseBody public ResultVO errorHandle(MamchargeException e) throws Exception { return new ResultVO(null,e.getErrorCode(),e.getMsg()); } @ExceptionHandler({Exception.class}) @ResponseBody public ResultVO errorHandle(Exception e) throws Exception { log.error("系统出错:",e); return ResultVO.isFail(); } }
RestControllerAdvice 注解表示拦截那一层
ExceptionHandler 拦截什么异常类 后面的是自定义异常类