![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio ciekawi mnie temat używania Exceptionów - muszę przyznać, że trochę słabo to czuję. Kiedyś Exception stosowałem do rzeczy, które po prostu mogły spowodować niedziałanie aplikacji - np. brak dostępu do pliku czy coś podobnego. Ostatnio jednak widzę, że coraz częściej w nowych bibliotekach Exceptiony stosuje się w inny sposób tj. do wymuszenia typowania metody bez zwracania NULL.
Np taka klasa:
Pierwsza metoda (podejście o którym mówię) nigdy nie zwraca nulla, tylko obiekt lub rzuca wyjątek. Druga metoda (tradycyjna) zwraca obiekt lub null. Które podejście stosujecie? Dlaczego. Ja po rozmowie z kolegą zacząłem skłaniać się ku pierwszej wersji i brak możliwości zwrócenia oczekiwanego obiektu traktuję jako wyjątek.Podświadomie wydaje mi się to bardziej logiczne i wymusza trochę więcej dyscypliny. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Ja bym jednak wolał aby repozytoria zwracały puste tablice/kolekcje oraz null w przypadku gdy pobieram w zamierzeniu jeden obiekt.
Generalnie wszystko np. w Laravel typu get(), find(), first(), firstWhere(), config() zwraca null gdy nie znajduje nic i ciężko by mi się było przerzucić na łapanie wyjątków. Najnormalniej w świecie było by więcej kodu i byłby dla mnie mniej czytelny. edit: Oprócz findFail(), który właśnie zwraca zgodnie z intencją wyjątek ResourceNotFound, idealny do wyświetlania resource/{id} i wyświetlenia po prostu 404ki bez zbędnych warunków. Temat w każdym razie mnie zaciekawił bo akurat ostatnio często rozmyślam na repository pattern. Znalazłem na Stacku temat: https://stackoverflow.com/questions/175532/...en-it-cant-prod Ten post edytował markonix 31.12.2018, 17:29:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 04:56 |