要實現Spring Boot的全局異常處理,可以按照以下步驟進行操作:
創建一個自定義的異常處理類,實現HandlerExceptionResolver
接口或者繼承ResponseEntityExceptionHandler
類。這個類將會處理所有的異常情況。
在自定義的異常處理類中,重寫resolveException
方法,根據不同的異常類型進行處理,返回錯誤信息或者自定義的錯誤響應。
在@ControllerAdvice
注解下創建一個全局異常處理器類,通過@ExceptionHandler
注解來統一處理異常。
在全局異常處理器類中,寫上對應的異常處理方法,將異常信息以合適的方式返回給前端。
在Spring Boot的配置類中,添加@EnableWebMvc
注解來啟用Spring Boot的全局異常處理功能。
例子代碼如下所示:
@ControllerAdvice
@EnableWebMvc
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> handleException(Exception ex) {
// 處理異常并返回自定義的錯誤響應
ErrorResponse errorResponse = new ErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Internal Server Error");
return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
這樣,當發生異常時,就會自動調用全局異常處理器類中的對應異常處理方法,返回自定義的錯誤響應。
需要注意的是,在全局異常處理器類中,可以根據需要處理不同類型的異常,例如可以創建多個@ExceptionHandler
方法來處理不同類型的異常,并返回不同的錯誤響應。