1. 程式人生 > 實用技巧 >java全域性異常捕捉處理

java全域性異常捕捉處理

@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攔截什麼異常類 後面的是自定義異常類