- Я хочу сохранить форму ответа об ошибке по умолчанию (свойства) + сообщение об ошибке. ПроблемаДеталь состоит из разных свойств. Это потому, что я хочу иметь один и тот же ответ об ошибке в формате JSON независимо от того, обрабатывается ли ошибка моим обработчиком или нет (необработанные исключения все равно будут использовать этот ответ по умолчанию, ErrorAttributes).
- Я не хочу вручную восстанавливать его в каждом обработчике (например, вручную заполнять некоторую карту, глупо надеясь, что она всегда будет синхронизироваться с ErrorAttributes).
Код: Выделить всё
import org.springframework.boot.webmvc.error.ErrorAttributes;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(InvalidTransferException.class)
public ResponseEntity handle(ErrorAttributes errorAttributes) {
return ResponseEntity.unprocessableContent().body(errorAttributes);
}
}
Код: Выделить всё
java.lang.IllegalStateException: Could not resolve parameter [0] in public org.springframework.http.ResponseEntity com.example.em_card_service.exception.GlobalExceptionHandler.handle(org.springframework.boot.webmvc.error.ErrorAttributes): No suitable resolver
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:221) ~[spring-web-7.0.7.jar:7.0.7]
Код: Выделить всё
{
"timestamp": "2026-05-15T15:55:24.553Z",
"status": 422,
"error": "Unprocessable Content",
"path": "/api/cards/transfer",
"message": "Cannot perform transfer to the same card"
}
Spring Boot 4.