![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Witam, jak lepiej obsługiwać błędy z poziomu klasy?
trigger_error()" title="Zobacz w manualu PHP" target="_manual Czy wyjątki?
Do tej pory kożystałem z wyjątków, ale coś mnie podkusiło aby się zapytać co do tego trigger_error()" title="Zobacz w manualu PHP" target="_manual (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) @edit Zastanawiam się nad tym dlaczego iż wyjątki nie są aż takie wygodne... Gdy ktoś ma error_reporting wyłączony to obsługuje klasę jak zwykłe funkcje z jądra PHP, a przy obsłudze wyjątków trzeba try {} i catch{} za każdym razem stosować przy tworzeniu obiektów. Dziękuję, Babcia@Stefa Ten post edytował Babcia@Stefa 27.06.2008, 20:38:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Bledy phpowe sa do D....., nic ci nie daja, wywala napis na ekran [ktorego w 99% nie chcesz tam widziec] a program leci sobie dalej, co z tego ze nie polaczyles sie z baza, skrypcik proboje na tym nieistniejacym polaczeniu wywolywac zapytania [a wyjatek ucieknie ci poziom wyzej, a dokladniej do pierwszego catch'a i nie pozwoli ci na takie bezsensowne akcje w skrypcie].
Mozesz przeciez uzyc IF'y, wszedzie, prawie co linijke, az szlak cie trafi. No i tracisz jedna z wartosci zwracanych przez funkcje, ktora musisz przeznaczyc na pokazanie ze nastapil blad. Ja nie korzystam z kodow bledow w wyjatkach [moze sie kiedys przydadza, ale na razie nie byly mi potrzebne], kazdy rodzaj bledu ma swoja klase np. RecordNotFound, FileNotFound, RoutingError, i jako msg przekazuje jakies dane odpowiednio NazwaKlasy + id, nazwa pliku, parametry requestu. Rozpoznawanie po kodzie bledu jest lipne, bo musisz dopisac funkcjonalnosc ktora juz masz [obsluge wielu catch'y], zamiast po prostu utworzyc kilka klas wyjatkow [1000x czytelniejsze] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 03:00 |