Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sposoby wywołania obsługi błędów
Forum PHP.pl > Forum > PHP
starach
Witajcie. A ja jak zwykle z głupim pytanie do was przychodzę tongue.gif

Obecnie obsługa błędów w moim FW sprowadza się do wywołania metody statycznej trigger() klasy Event,
która to przekazuje nazwę błędu ( identyfikator ) i parametry którymi są zazwyczaj informacje dodatkowe o błędzie do handlera.

Właśnie przetestowałem sobie inny sposób... znany od zarania dziejów.
Czyli throw new Exception połączone z plikiem ErrorListener.php w którym mam
  1. <?php
  2. set_error_handler(array('ErrorHandler', 'handleError'), E_ALL);
  3. set_exception_handler(array('ErrorHandler', 'handleException'));
  4. ?>


Dobra ale gdzie tutaj pytanie. Otóż wywołań Event::trigger(ERR_...) mam około stu blinksmiley.gif
i zwyczajnie zastanawiam się czy się opłaca to zmieniać.
Jedynym problemem który stwarza mi obecna koncepcja, jest związany ze zmianami we frameworku.
Każdy bzdurny błąd który jest wynikiem zmian w FW, powoduje nie tyle nie uruchomienie domyślnej obsługi błędów,
co najczęście produkcję czystej białej strony bez czegokolwiek...

Z kolei inny problem stanowi dla mnie nowe rozwiązanie gdyż niektóre błędy są na zasadzie E_NOTICE czyli nie powinny zabijać dalszego parsowania strony. Niestety użycie wyjątków bez bloku try/catch spowoduje to. Jeśli da się to w jakiś sposób obejść to poświęcę te 2 dni na przepisanie obsługi błędów.

Za wszelkie pomysłu, uwagi czy krytykę mojej daleko idącej głupoty będę bezgranicznie wdzięczny tongue.gif
Babcia@Stefa
Mmm... no to przebuduj ErrorHandler, tak aby omijał NOTICE...

Jeden problem z głowy, z pierwszym troche nie kumam o co Ci chodzi, za dużo wywołań?

Pozdrawiam, WebNuLL(Babcia@Stefa)
starach
Chodzi o to że obecnie mam Adapter w postaci klasy Event.
Powoduje to sypanie się w różny sposób całości kiedy zrobię jakiś niewielki błąd modyfikując Framework.

A teraz wyjaśnij mi jak to on ma omijać notice bo nie rozumiem ?
Ja mam w konfiguracji błędów oprócz opisu błędu informację czy jest on krytyczny.
Jeśli jest no to die() jeśli nie jest to kontynuuj. Ale przekazanie obsługi wyjątku do handlera spowoduje zatrzymanie wykonywania skryptu.
Więc nie będę mógł kontrolować czy błąd jest krytyczny czy nie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.