Функция set_exception_handler
Функцията set_exception_handler позволява дефинирането на функция, която ще бъде извиквана за обработка на нехванати изключения. Като параметър се предава името на функцията-обработчик или анонимна функция. Обработчикът получава обект на изключението като параметър.
Синтаксис
set_exception_handler(callable $exception_handler): callable
Пример
Нека зададем прост обработчик на изключения:
<?php
function myExceptionHandler($exception) {
echo 'Хванато изключение: ' . $exception->getMessage();
}
set_exception_handler('myExceptionHandler');
throw new Exception('Нещо се обърка!');
?>
Резултат от изпълнението на кода:
'Хванато изключение: Нещо се обърка!'
Пример
Използване на анонимна функция като обработчик:
<?php
set_exception_handler(function($exception) {
echo 'Грешка: ' . $exception->getMessage();
});
throw new Exception('Критична грешка');
?>
Резултат от изпълнението на кода:
'Грешка: Критична грешка'
Пример
Възстановяване на предишен обработчик:
<?php
function firstHandler($exception) {
echo 'Първи обработчик: ' . $exception->getMessage();
}
function secondHandler($exception) {
echo 'Втори обработчик: ' . $exception->getMessage();
}
set_exception_handler('firstHandler');
$old_handler = set_exception_handler('secondHandler');
restore_exception_handler(); // Възстановява firstHandler
throw new Exception('Тест');
?>
Резултат от изпълнението на кода:
'Първи обработчик: Тест'