Globalny handler wyjątków (set_exception_handler)
Założenie: Nauczymy się, jak utworzyć globalny handler wyjątków w PHP, aby centralnie zarządzać nieprzechwyconymi błędami.
Krok po kroku:
- Definicja funkcji handlera: Tworzymy funkcję, która będzie obsługiwać wyjątki. Funkcja ta przyjmuje jako argument obiekt wyjątku.
- Ustawienie handlera: Rejestrujemy naszą funkcję jako globalny handler wyjątków za pomocą funkcji
set_exception_handler()
. - Generowanie wyjątku: Teraz, gdy wystąpi nieprzechwycony wyjątek, zostanie on przechwycony przez nasz handler.
- Sprawdzenie logów: Sprawdź logi serwera (np. error_log) aby zobaczyć, jak działa handler.
function globalnyHandlerWyjatkow(Throwable $e) {
error_log("Wystąpił wyjątek: " . $e->getMessage() . " w pliku: " . $e->getFile() . " w linii: " . $e->getLine());
// Możesz tutaj dodać np. logowanie do bazy danych, wysłanie maila, itp.
// echo "Wystąpił błąd!"; // Unikaj wyświetlania szczegółów błędów użytkownikowi w produkcji!
}
set_exception_handler('globalnyHandlerWyjatkow');
try {
// Kod, który może wygenerować wyjątek
$liczba = 10 / 0;
} catch (DivisionByZeroError $e) {
echo "Przechwycono wyjątek DivisionByZeroError";
}
// Wyjątek bez obsługi - zostanie przechwycony przez globalny handler
$tablica = [];
echo $tablica[10];
Ten przykład pokazuje podstawy tworzenia globalnego handlera wyjątków w PHP. Zachęcamy do dalszego zgłębiania tematu obsługi wyjątków, aby tworzyć bardziej odporne i stabilne aplikacje.