[110]
07 Окт 2013, 11:34

PHP отладка Falat Error, завершающие действия

Привет!

Возможно ли в PHP произвести завершающие действия после Falat Error? Мне нужно сделать отладку и корректно сохранить данные в любом случает, но фатальные ошибки завершают работу всей программы и управление уже не вернуть.

#php

Комментарии (1)
grom
08 Окт 2013, 10:16
#

При Falat Error, PHP всетаки вызывает некоторые завершающие функции. Например callback функции ob_start.

ob_start('ob_handler');

function ob_handler($outputData)
{
$error = error_get_last();
if (is_array($error) && in_array($error['type'], array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR)))
{
/* Обрабатываем фатальную ошибку */
}

return $outputData;
}

// ...
// какие-то действия с возможной ошибкой
// ...

Так же сработает и зарегистрированная функция через register_shutdown_function

register_shutdown_function(function () {
$error = error_get_last();
if ($error && ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR))
{
/* Обрабатываем фатальную ошибку */
}
});

Добавить комментарий

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Здесь вы можете спросить или написать обо всём, что касается Веб-разработки.
написать о чем-нибудь...
Метки: