какое исключение выбрасывать при создании банковского приложения (2 варианта использования) в Spring Rest? - PullRequest
0 голосов
/ 26 июня 2018

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

так что, если учетная запись пользователя уже существует, она должна выдать исключение, так что в таком случае, какую учетную запись можно использовать? Здесь предварительные условия принадлежат библиотеке гуавы

 Preconditions.checkRequestState(user.getAccount == null) . if condition fails => throws IllegalStateException() //500
  or
ServicePreconditions.checkRequestState(user.getAccount == null) if condition fails => throws MyConflictException()  // 409
(custom exception i have created in rest-with-spring)

2-й вариант использования =>. если я хочу снять деньги со своего счета и баланса недостаточно. в этом случае, какое исключение должно быть подходящим, что я упомянул выше.

 Preconditions.checkRequestState(withdrawAmount <= totalAmount)  if condition fails  => throws IllegalStateException() //500
    or
 ServicePreconditions.checkRequestState(withdrawAmount <= totalAmount) if condition fails => throws MyConflictException()  // 409 



public final class ServicePreconditions {
 public static void checkRequestState(final boolean expression) {
        if (!expression) {
            throw new MyConflictException();
        }
    }

}

// 409

@ExceptionHandler({InvalidDataAccessApiUsageException.class, DataAccessException.class, MyConflictException.class})
protected ResponseEntity<Object> handleConflict(final RuntimeException ex, final WebRequest request) {
    final ApiError apiError = message(HttpStatus.CONFLICT, ex);
    return handleExceptionInternal(ex, apiError, new HttpHeaders(), HttpStatus.CONFLICT, request);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...