Скажем, Spring Boot (2.1) имеет @RestControllerAdvice
, который обрабатывает некоторые пользовательские исключения.
Что если во время вызова обработчика исключения выдается другое исключение. Есть ли способ справиться с этим вместо того, чтобы Spring отправлял собственное тело ответа, которое может выглядеть примерно так:
{
"timestamp": "2020-01-31T03:03:55.228+0000",
"status": 500,
"error": "Internal Server Error",
"message": "account: 2",
"path": "/myendpoint/2"
}
@RestControllerAdvice
public class MyExceptionHandler {
@Autowired
private MyOtherService otherService;
@ExceptionHandler(SomeCustomException.class)
public ResponseBody<Object> handleCustomException(SomeCustomException ex) {
otherService.doSomething(); // This might throw, say, a RuntimeException
return new ResponseBody<>(/* ... */);
}
}