выдает исключение из контроллера Spring Boot - PullRequest
0 голосов
/ 23 апреля 2020

Spring Boot 2.0.5

Будет ли это считаться "плохой практикой", почему или почему бы не

  @DeleteMapping(value = "/{id}")
  public Long testDeleteContactWithException(@PathVariable Long id) throws Exception {
    return contactService.testDeleteContactWithException(id);
  }

внутри службы существует пользовательское исключение, которое всплывает.

Я видел, что могу сделать попытку / поймать, а затем с помощью ResponseEntity установить сообщение, код состояния и т. Д. c. но тогда для этого нужно больше кода, если только для этого нет какой-либо причины.

1 Ответ

1 голос
/ 23 апреля 2020

Ваши клиенты могут надеяться, что есть список состояний, которые могут помочь их работам.

И есть способ перехватить все исключения.

    @ExceptionHandler
    @ResponseBody
    public ResponseEntity exp(HttpServletRequest request, Exception ex) {
        logger.error("BaseController.exp() => Error:", ex);
        ResponseEntity responseEntity = new ResponseEntity();
        if (ex instanceof YourException) {
            responseEntity.setCode(((YourException) ex).getCode());
            responseEntity.setMsg(((YourException) ex).getMsg());
        } else {
            responseEntity.setCode(ResponseState.ERROR.getValue());
            responseEntity.setMsg(ex.getMessage());
        }
        return responseEntity;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...