我使用 @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。
如何从每个异常中生成正确的状态代码以将其发送给客户端?