簡單的全域性異常統一處理

qq_43060570發表於2020-09-28

簡單的異常統一處理

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
public class MyExceptionHandler {

    protected Logger logger = LoggerFactory.getLogger(this.getClass());

    @ExceptionHandler(Exception.class)
    @ResponseBody
    /**
    * R 為我自己定義的返回前端的規範類
    */
    public R handleMyException(Exception e){
        logger.error("------異常統一處理------,{}",e);
        return R.error(e.getMessage());
    }
}

就這麼簡單,專案中所有異常都會經由這裡處理。如果你自己有定義異常想進行特定處理,也很簡單

@ExceptionHandler(ErrorResultException.class)
    @ResponseBody
    /**
    * R 為我自己定義的返回前端的規範類
    */
    public R handleErrorException(Exception e){
        logger.error("------異常統一處理------,{}",e);
        return R.error(e.getMessage());
    }

這樣所有的 ErrorResultException 都會在這裡處理,而不會經過 Exception 型別的那個方法

相關文章