0

@ControllerAdvice を使用して、Spring Boot コントローラーで例外をキャッチします。@ExceptionHandler では、限られた数の例外をステータス コードで手動で指定できます。

私の質問は、他のすべての例外とそのステータスにどのように対処できるかです。

次のようなステータスでいくつかの例外を指定できます。

@ExceptionHandler(MethodArgumentNotValidException.class)
 public ResponseEntity<Object> argNotValidExceptionHandler(MethodArgumentNotValidException ex){
    String localizeMessage = ex.getLocalizeMessage();

    ErrorMessage errorMessage = new ErrorMessage(LocalDateTime.now(), localizeMessage);

    return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorMessage);
}

すべての例外をキャッチしたいので、@ExceptionHandler で INTERNAL_SERVER_ERROR ステータスの Exception.class を追加で指定する必要があるようです。

この時点で、ステータスが 4** であっても、他のすべての例外についてステータス 500 を取得します。

すべての例外から適切なステータス コードを生成してクライアントに送信するにはどうすればよいですか?

4

1 に答える 1