SpringBootのグローバル例外処理はどうすればいいですか。
Spring Bootでは、グローバルな例外処理機構が提供されており、システム内で発生する例外を統一的に処理するために、グローバル例外処理クラスを作成することができます。
- 例外処理がグローバル範囲で行われる
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<Object> handleException(Exception ex) {
// 处理异常
// 返回自定义的错误信息
return new ResponseEntity<>("发生了错误", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
- GlobalExceptionHandlerクラスに@ControllerAdviceアノテーションを追加し、これがグローバルな例外処理クラスであることを示す。
- GlobalExceptionHandlerクラスに、@ExceptionHandlerアノテーションを使用して、処理する例外の種類を指定した例外処理メソッドを記述します。メソッド内で例外を処理し、カスタムエラーメッセージを返します。
- 具体の要求に応じて、例えば異なる例外タイプに対して異なる処理を行うために、例外処理メソッドで異なるエラーコードやエラーメッセージを返すことができます。
- システムで異常が発生すると、Spring Boot は自動的にGlobalExceptionHandlerクラスの例外処理メソッドを呼び出し、カスタムエラーメッセージを返します。
注意:全体例外処理クラスはスキャンされる必要があります。これをメインアプリケーションクラスと同じレベルまたはサブレベルのパッケージに配置できます。
したがって、システムで例外が発生すると、自動的にグローバルな例外処理クラス内の例外処理メソッドが呼び出され、例外を統一的に処理するロジックが実現されます。