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?
|
|
|
|
![]() |
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) |
|
|
|
klusekman Kiedy własna funkcja nie może zastąpić wyjątków? 1.01.2012, 16:46:04
Uriziel01 Przedstaw choć jedno miejsce w którym własna funkc... 2.01.2012, 13:19:17 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 17:46 |