В настоящее время я работаю над банковским приложением, в котором администратор может создать учетную запись для пользователя.
так что, если учетная запись пользователя уже существует, она должна выдать исключение, так что в таком случае, какую учетную запись можно использовать? Здесь предварительные условия принадлежат библиотеке гуавы
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);
}