在Spring Boot中,可以使用@ControllerAdvice
和@ExceptionHandler
注解來實現全局異常處理。
@ControllerAdvice
注解標記。該類可以捕獲所有Controller層拋出的異常。@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
// 處理異常邏輯
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
@ExceptionHandler(UserNotFoundException.class)
public ResponseEntity<String> handleUserNotFoundException(UserNotFoundException e) {
// 處理自定義異常邏輯
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
}
}
在異常處理方法上使用@ExceptionHandler
注解來指定要處理的異常類型。
在處理異常的方法中,可以根據不同的異常類型,進行不同的處理邏輯。
注意:需要添加對應的異常處理類的包掃描,可以使用@ComponentScan
注解或在@SpringBootApplication
注解上添加scanBasePackages
屬性來掃描異常處理類所在的包。