Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kiedy własna funkcja nie może zastąpić wyjątków?
klusekman
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2010

Ostrzeżenie: (0%)
-----


Uczę się właśnie php obiektowego i używane są często wyjątki. Mi się wydaje, że łatwiej by było wszystko obsłużyć przez if !cośtam własna_funkcja() else inne działanie. Przykładowo jest w kodzie if(!czy zmienna to string) jeżeli nie to throw new exception. Czy nie lepiej by było zrobić swoją funkcję którą można byłoby kontrolować co się dzieje w takim przypadku, czyli np. czy wykonywać dalej z powiadomieniem, czy bez powiadomienia, czy wszystko zamknąć i nic nie wyświetlać. Czy mógłby mi ktoś podać przykład, albo wytłumaczyć po co jest ten mechanizm?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Popieram @up kombinowanie z "zastępowaniem" wyjątków na ogół nie wychodzi najlepiej - można zbudować coś bardziej konfigurowalnego na podstawie wyjątków. Co do samego problemu to musisz poczytać o tym kiedy zastosować wyjątek a kiedy wystarczy "zwrócić false" (IMG:style_emoticons/default/smile.gif) Używanie wyjątków wszędzie tam gdzie to możliwe także mija się z celem.

AFAIK PHP posiada obsługę wyjątków ale nie jest moim zdaniem językiem na bazie którego powinno się te wyjątki omawiać. Java, C# itp. - te języki są bardziej oparte na wyjątkach - poczytaj dlaczego tam się je stosuje - powinieneś znaleźć coś ciekawego na ten temat.

Co do tworzenia funkcji zamiast wyjątków to dziwny pomysł chodź rozumiem idee zwiększenia konfigurowalności to samych funkcji już nie. W PHP mamy 2 mechanizmy sprawdzania/pokazywania błędów - errory i wyjątki. O ile errory może generuje się łatwiej to dużo ciężej zbudować funkcję je obsługujące w jakiś żądany przez nas sposób. Wyjątki są w tym kontekście lepsze - pozwalają nam kontrolować czy traktujemy coś jako error czy tylko akcję po której ma być dana reakcja. Można łatwo tworzyć własne klasy wyjątków i ich handlery przez co można budować na nich fajne systemy raportowania, logowania błędów itd. Można napisać handler obsługujący nie przechwycone wyjątki i w zależności od klasy wyjątku podejmować odpowiednie akcje itd (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 17:46