Spring Bootのグローバルな例外処理のコードはどのように書けばいいですか?
Spring Bootでは、アプリケーション内のすべての例外を処理するために、グローバル例外ハンドラを書くことができます。以下は、グローバル例外処理の実装方法を示したサンプルコードです。
最初に、独自の例外処理ハンドラークラスを作成し、@ControllerAdviceアノテーションと@ExceptionHandlerアノテーションを実装することで、Spring Bootがそれをグローバル例外処理ハンドラーとして認識するようになります。
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
// 在这里编写异常处理逻辑
// 可以根据具体的异常类型进行不同的处理
// 返回自定义的错误消息或错误码
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
}
handleExceptionメソッドでは、具体的な例外の種類に応じて異なる処理ロジックを実行し、独自のエラーメッセージやエラーコードを返すことができます。
Spring Bootの主クラスに@EnableWebMvcアノテーションを追加して、グローバル例外処理を有効にします。
@SpringBootApplication
@EnableWebMvc
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
したがって、アプリケーション内で例外が発生すると、グローバル例外ハンドラーがそれを捕捉して処理します。
コントローラー層でスローされた例外のみがグローバル例外ハンドラーで処理されることに注意する必要があります。サービスレイヤーやその他の場所でスローされた例外を処理する場合は、該当するメソッド内でtry-catchブロックを使用して例外を処理し、独自のエラーメッセージやエラーコードを返すことができます。