PHP hvata greške na nivou FATAL
Službena referenca
Službena web stranica set_error_handler register_shutdown_functionKako savršeno uhvatiti sve greške
set_error_handler može se koristiti za hvatanje većine vrsta grešaka. Kada se naiđe na pogrešku na razini FATAL, jer PHP izravno završava operaciju, funkcija povratnog poziva postavljena set_error_handler ne može se aktivirati. U ovom trenutku moramo koristiti funkciju register_shutdown_function da postavimo funkciju povratnog poziva za završetak programa. Treba napomenuti da se povratni poziv postavljen funkcijom register_shutdown_function izvršava nakon završetka programa, bez obzira na to postoji li greška u procesu. Dakle, u ovom povratnom pozivu također trebamo utvrditi je li došlo do greške, a ako se pogreška dogodila, zabilježit ćemo je u dnevnik. Za detalje pogledajte sljedeći kod.
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);
}