SpringBootで統一例外処理を実装する方法は何ですか?

Spring Bootでは、@ControllerAdviceアノテーションを使用して統一された例外処理を実装することができます。以下はその例です:

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<ErrorResponse> handleException(Exception ex) {
        ErrorResponse errorResponse = new ErrorResponse("500", ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }

    @ExceptionHandler(MyCustomException.class)
    public ResponseEntity<ErrorResponse> handleCustomException(MyCustomException ex) {
        ErrorResponse errorResponse = new ErrorResponse("400", ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
    }

    @Data
    @AllArgsConstructor
    public static class ErrorResponse {
        private String code;
        private String message;
    }
}

上記の例では、私たちがGlobalExceptionHandlerクラスを定義し、@ControllerAdviceアノテーションでそれがグローバルな例外処理クラスであることを示しています。次に、ExceptionとMyCustomExceptionタイプの例外を処理する2つの例外処理メソッドを定義しています。これらのメソッドでは、エラーメッセージやHTTPステータスコードをカスタマイズすることができます。

Spring BootがGlobalExceptionHandlerクラスをスキャンできるようにするには、アプリケーションのパッケージまたはそのサブパッケージにあることを確認してください。

bannerAds