VDS за 300р от нашего партнера SpaceWeb
[110]
07 Окт 2013, 11:34

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

Привет!

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

#php

Комментарии (1)
grom 08.10.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))
{
/* Обрабатываем фатальную ошибку */
}
});
+1

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

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Здесь вы можете спросить или написать обо всём, что касается Веб-разработки.
написать о чем-нибудь...
Метки:
Лучшее
[52]
16 Окт 2011, 15:38
Вывести все элементы POST
[просмотров 13406]
[74]
31 мая 2011, 11:48
Python проверка существования переменной
[просмотров 9178]
[4]
10 Окт 2018, 15:33
Как запретить просмотр сайта по IP?
[просмотров 8815]
[100]
19 Дек 2014, 16:16
User-agent для Internet Explorer 11
[просмотров 8098]
[124]
21 Июл 2011, 14:04
Python Imaging Library (PIL)
[просмотров 6790]
[58]
29 мая 2012, 12:08
Узнать версию PHP из командной строки
[просмотров 4923]
[315]
16 Июл 2011, 20:03
Python работа с MySQL
[просмотров 4895]

Вести с Хабра