PHP фаќа грешки во FATAL ниво
Официјална референца
Официјална веб страна set_error_handler register_shutdown_functionКако совршено да ги фатите сите грешки
set_error_handler може да се користи за фаќање на повеќето типови грешки.Кога ќе се сретне со грешка на FATAL ниво, бидејќи PHP директно ја прекинува операцијата, функцијата за повратен повик поставена од set_error_handler не може да се активира. Во тоа време, треба да ја користиме Register_shutdown_function за да ја поставиме функцијата за повратен повик за прекинување на програмата. Треба да се напомене дека повратен повик поставен од Register_shutdown_function се извршува по завршувањето на програмата, без оглед дали има грешка во процесот. Значи, во овој повратен повик, ние исто така треба да утврдиме дали настанала грешка и ако се појавила грешка, ќе ја заведеме во дневникот. За детали, погледнете го следниот код.
set_error_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function exception_handler($err_no, $err_str, $err_file, $err_line)
{
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}
function shutdown_handler()
{
$error = error_get_last();
if (empty($error)) {
return;
}
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}