Hej, robiłem sobie aplikacje w Springu do nauki, dużo się naczytałem że lepiej nie stosować wyjątków do obsługi błędów (no nie do końca "błędów" - mam na myśli sytuacje, gdy w sklepie np. nie można utworzyć zamówienia, bo brak produktu. Albo próbę dodania nowego albumu do zespołu, który nie istnieje) no wyjątki są do sytuacji wyjątkowych. Robiłem Either<Błąd, Obiekt> jak znalazłem w kilku miejscach na - stacku, tutaj itd.
Widziałem też sporo kodu z waleniem wyjątku na mordę i obsługiwaniem go w handlerze i zwracaniem tam wiadomości wyjątku. Widziałem też sporo kodu z waleniem wyjątku i tylko zwracaniem statusu. Niby w wielu miejscach ludzie twierdzą, że tak się nie powinno robić.
Tymczasem mój wykładowca doktor inżynier Waldemar Korłub napier*ala wyjątkami i adnotacjami gdzie popadnie. W przykładach miał prostą logikę biznesować w kontrolerach.
Przykład z jego prezentacji:
Ogólnie sporo ludzi na labach nic nie kuma i tylko zwala od reszty (robią byle apka działała i oddają, często bez sensu), ja sobię w miarę radzę bo czytałem sporo i sam pisałem, to rozumiem co tam się dzieje. Bez własnej wiedzy też bym nic z tego nie rozumiał.
Raz mnie pan doktor skrytykował na labach, że tak mam płytką strukturę wyjątków, bo zrobiłem tak jak on że od razu dziedziczenie po RuntimeException. WTF?? Sam tak robi, a jak ja naśladuję to źle.
Już sam nie wiem jak się powinno pisać kod:
- Stosować te wyjątki czy walić Either?
- Używanie Either powoduje u mnie więcej kodu w serwisach, ale nie potrzeba żadnego handlera do wyjątków. Przy bardzo rozbudowanych metodach mam sporo kodu z tworzeniem/obsługą tych Eitherów. Robię coś źle?
- Na wiosnę idę do pracy jako Junior Java Dev, jakiego podejścia używa się częściej w branży? Pewnie tego z wyjątkami, bo w sumie szybciej