Czy taka obsługa błędów jest w porządku?:

E_NOTICE/E_WARNING: własna wiadomość o błędzie wyświetlana z error_handler()
E_ERROR: własna wiadomość o błędzie wyświetlana przez register_shutdown()
UNCAUGHT_EXCEPTION: własna wiadomość o błędzie wyświetlana z exception_handler()
PROJECT_EXCEPTION: własna wiadomość wyświetlana z wbudowanej, defaultowej klasy.

Niestety, muszę tutaj dość mocno oddzielać błędy od wyjątków, a oba rodzaje zapisywane są do jednej klasy przechowującej ich obiekty w celu późniejszego zapisania logów. Muszę też mieć trzy oddzielne funkcje wyłapujące te wszystkie zdarzenia - error_handler(), register_shutdown() i exception_handler().


Podobno można zamieniać błędy na wyjątki.

Jednak przypadkowych E_NOTICE/E_WARNING/E_ERROR przecież nie da się wyłapać, po coś jest podawana linia kodu z błędem. A niewyłapane wyjątki zatrzymują wykonywanie skryptów, co przy E_NOTICE/E_WANING nie jest zbyt pożądane.

Można by jeszcze otoczyć "całą stronę" blokiem try-catch, ale wtedy w drugą stronę, skrypty nie zatrzymują się przy wystąpieniu błędu E_ERROR.


Jakie rozwiązanie najlepiej zastosować? Wszelkie sugestie i komentarze mile widziane, siedzę już nad tym kilka dni...