Logowanie wyjątków (try-catch, set_exception_handler)

Założenie: Nauczymy się obsługiwać wyjątki w PHP za pomocą konstrukcji try-catch oraz zdefiniowania własnego handlera wyjątków za pomocą funkcji set_exception_handler(). Pokazane zostaną różne sposoby logowania informacji o błędach.

Krok po kroku:

  1. Obsługa wyjątków za pomocą try-catch:
    
    try {
        // Kod, który może wywołać wyjątek
        $dzielnik = 0;
        $wynik = 10 / $dzielnik;
    } catch (DivisionByZeroError $e) {
        // Obsługa wyjątku DivisionByZeroError
        echo "Wystąpił błąd: " . $e->getMessage();
        error_log("Wystąpił błąd dzielenia przez zero: " . $e->getMessage()); //Logowanie do pliku
    }
    					

    Ten fragment kodu próbuje podzielić 10 przez 0, co wywołuje wyjątek DivisionByZeroError. Blok catch przechwytuje ten wyjątek i wyświetla komunikat o błędzie. Dodatkowo, funkcja error_log() zapisuje informację o błędzie do pliku logów.

  2. Niestandardowy handler wyjątków:
    
    function customExceptionHandler($exception) {
        $logMessage = "Wyjątek: " . get_class($exception) . "\n";
        $logMessage .= "Wiadomość: " . $exception->getMessage() . "\n";
        $logMessage .= "Plik: " . $exception->getFile() . "\n";
        $logMessage .= "Linia: " . $exception->getLine() . "\n";
        error_log($logMessage);
        echo "Wystąpił nieoczekiwany błąd. Szczegóły zostały zalogowane.";
    }
    
    set_exception_handler('customExceptionHandler');
    
    // Kod, który może wywołać wyjątek
    throw new Exception("To jest przykładowy wyjątek.");
    					

    Ten kod definiuje funkcję customExceptionHandler, która przyjmuje obiekt wyjątku jako argument i loguje szczegółowe informacje o błędzie do pliku. Funkcja set_exception_handler() rejestruje tę funkcję jako niestandardowy handler wyjątków. Każdy nieobsłużony wyjątek będzie teraz obsługiwany przez tę funkcję.

Ten przykład pokazuje podstawowe metody obsługi wyjątków w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi typami wyjątków oraz sposobami ich logowania.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *