在Spring Boot中,可以通過@ControllerAdvice注解和@ExceptionHandler注解來定義全局異常處理。
首先,創建一個全局異常處理類,使用@ControllerAdvice注解標記該類為全局異常處理類。然后在類中定義一個方法,并使用@ExceptionHandler注解標記該方法為異常處理方法,該方法的參數為要處理的異常類型。
例如,創建一個GlobalExceptionHandler類作為全局異常處理類:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
// 返回自定義的異常信息
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("發生異常,請稍后重試");
}
}
上述代碼中,handleException方法處理Exception類型的異常,當發生異常時,返回自定義的異常信息。
接下來,需要確保全局異常處理類被Spring Boot掃描到。可以通過在啟動類上添加@ComponentScan注解來指定要掃描的包,或者將全局異常處理類放在啟動類所在的包或其子包下。
這樣,當發生異常時,全局異常處理類中相應的方法將會被調用,并返回自定義的異常信息。
需要注意的是,全局異常處理類只能處理在Controller中發生的異常,對于其他地方的異常無效。如果要處理其他地方的異常,可以在相應的類中使用@ExceptionHandler注解來處理。