Spring rest wyjątki

0

Cześć

Szukam jakiś przykładów gdzie jest pokazane jak zamiast wyjątków zwracać błędy. przykład:
Mamy rejestrację i w serwisie sprawdzamy czy przypadkiem użytkownik nie wybrał już istniejącego loginu. I co zwrócić do kontrolera zamiast rzucać wyjątek? Nie jest to przecież sytuacja wyjątkowa, że ktoś wymyślił taki sam login.Jakiś either? Jak później mapować te błędy po stronie klienta? Enum z kodami błędów po stronie serwera?

W skrócie, w jaki sposób obsłużyć błędy po stronie serwera i klienta inaczej niż za pomocą wyjątków? Jakiś blog, github?

Dzięki wielkie

0

W try-catch w bloku catch sprawdzasz wyjątek i zwracasz swój ResponseEntity z komunikatem, ale to załatwisz szybciej @ControllerAdvice. Lub dodajesz w ResponseEntity liste z błędami i na froncie sprawdzać czy coś w ww liście się znajduje.

0
djmichol napisał(a):

W try-catch w bloku catch sprawdzasz wyjątek i zwracasz swój ResponseEntity z komunikatem, ale to załatwisz szybciej @ControllerAdvice. Lub dodajesz w ResponseEntity liste z błędami i na froncie sprawdzać czy coś w ww liście się znajduje.

Czyli dalej muszę rzucić wyjątek w serwisie, np.:

userRepository.findOneByEmailIgnoreCase(userCreateDTO.email).ifPresent(u -> {
      throw new EmailAlreadyUsedException();
    });

i potem w kontrolerze to łapać?

0

Nie, możesz sobie z serwisy zwracać Optional albo Either (gdybyś chciał mieć tam więcej info o tym co poszło nie tak) a potem w kontrolerze mapować sobie na odpowiedni kod błędu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1