![]() |
![]() |
![]()
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: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Przedstaw choć jedno miejsce w którym własna funkcja ma przewagę nad blokiem
1)Masz tutaj pełną dowolność co zrobisz po 'wykryciu' wyjątku, nie rozumiem co niby Cie ogranicza ? 2)jako że jest to natywna funkcja jest zapewne (nie wiem na pewno) znacznie szybsza od zainicjowanej przez samego użytkownika. 3)Mechanizm ten służy do obsługi wyjątków, jeżeli jest to zwykła akcja która wywołuje dwie różne funkcje w zależności od typu atrybutu (przykładowo) to nie powinieneś oczywiście używać wyjątków ale zwykłych instrukcji warunkowych tak jak przytoczyłeś to powyżej. Tak jak w każdym przypadku trzeba po prostu znać umiar w tym co się robi. Ten post edytował Uriziel01 2.01.2012, 13:21:40 |
|
|
![]()
Post
#3
|
|
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) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 19:11 |