java全域性異常捕捉處理
阿新 • • 發佈:2020-11-27
@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攔截什麼異常類 後面的是自定義異常類