Есть ли способ обработать исключение, выброшенное изнутри пользовательского обработчика исключений в Spring? - PullRequest
0 голосов
/ 31 января 2020

Скажем, 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<>(/* ... */);
  }
}

1 Ответ

0 голосов
/ 31 января 2020

ExceptionHandler - барьер отказа , поэтому вам нужно обработать исключение, не выбрасывая другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...