spring-boot-route(四)全域性異常處理
阿新 • • 發佈:2020-10-05
在開發中,我們經常會使用`try/catch塊`來捕獲異常進行處理,如果有些程式碼中忘記捕獲異常或者不可見的一些異常出現,就會響應給前端一些不友好的提示,這時候我們可以使用全域性異常處理。這樣就不用在程式碼中寫那些煩人的`try/catch塊了`,程式碼的可讀性也會提高。
SpringBoot提供的的註解`@ControllerAdvice`表示開啟全域性異常捕獲,在自定義的異常方法上使用`ExceptionHandler`來進行統一處理。
下面一起看看如何優雅的處理全域性異常!
### 一 定義響應狀態碼及資訊的列舉類
```java
@Getter
public enum CodeEnum {
SUCCESS(0,"請求成功"),
ERROR(500,"未知異常"),
ERROR_EMPTY_RESULT(1001,"查詢結果為空"),
ERROR_INCOMPLETE_RESULT(1002,"請求引數不全");
private int code;
private String message;
CodeEnum(int code,String message){
this.code = code;
this.message = message;
}
}
```
### 二 定義響應資料的實體類
```java
@Slf4j
@Data
public