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ブロックを使用して例外を処理し、独自のエラーメッセージやエラーコードを返すことができます。

bannerAds