Funkcja set_exception_handler
Funkcja set_exception_handler pozwala zdefiniować funkcję, która będzie wywoływana w celu obsługi nieprzechwyconych wyjątków. Jako parametr przekazywana jest nazwa funkcji obsługującej lub funkcja anonimowa. Procedura obsługi otrzymuje obiekt wyjątku jako parametr.
Składnia
set_exception_handler(callable $exception_handler): callable
Przykład
Ustawmy prostą obsługę wyjątków:
<?php
function myExceptionHandler($exception) {
echo 'Przechwycony wyjątek: ' . $exception->getMessage();
}
set_exception_handler('myExceptionHandler');
throw new Exception('Coś poszło nie tak!');
?>
Wynik wykonania kodu:
'Przechwycony wyjątek: Coś poszło nie tak!'
Przykład
Użycie funkcji anonimowej jako procedury obsługi:
<?php
set_exception_handler(function($exception) {
echo 'Błąd: ' . $exception->getMessage();
});
throw new Exception('Błąd krytyczny');
?>
Wynik wykonania kodu:
'Błąd: Błąd krytyczny'
Przykład
Przywracanie poprzedniej procedury obsługi:
<?php
function firstHandler($exception) {
echo 'Pierwsza obsługa: ' . $exception->getMessage();
}
function secondHandler($exception) {
echo 'Druga obsługa: ' . $exception->getMessage();
}
set_exception_handler('firstHandler');
$old_handler = set_exception_handler('secondHandler');
restore_exception_handler(); // Przywraca firstHandler
throw new Exception('Test');
?>
Wynik wykonania kodu:
'Pierwsza obsługa: Test'