bulatcan
@bulatcan

Почему PHP в обработчик исключений отправляет объект ERROR?

Здравствуйте!
Почему PHP в обработчик исключений, установленный через set_exception_handler(), отправляет объект ERROR? Дело в том, что такие ошибки я бы хотел обрабатывать через register_shutdown_function('fatalErrorHandler').

<?php

function exceptionHandler($e)
{
    echo '<h3>Поймал исключение!</h3>';
    var_dump($e);
}

set_exception_handler('exceptionHandler');

test(); // вызов неопределенной функции

Выведет: Поймал исключение!
object(Error)#1 (7) { ["message":protected]=> string(33) "Call to undefined function test()" и т.д.
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В register_shutdown_function задаётся функция, вызываемая по завершении скрипта. Она не перехватывает исключения.
<?php
function exceptionHandler($e)
{
    var_dump($e);
}

function shutdown()
{
    echo 'Скрипт успешно завершился', PHP_EOL;
}

register_shutdown_function('shutdown');
set_exception_handler('exceptionHandler');

test();
/*
object(Error)#1 (7) { ["message":protected] => string(33) "Call to undefined function test()", ... }
Скрипт успешно завершился
*/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы