PHP fanger FATAL-fejl
Officiel reference
Officiel hjemmeside set_error_handler register_shutdown_functionSådan fanges alle fejl perfekt
set_error_handler kan bruges til at registrere de fleste fejltyper. Når der opstår en FATAL-niveaufejl, fordi PHP direkte afslutter handlingen, kan tilbagekaldsfunktionen, der er indstillet af set_error_handler, ikke udløses. På dette tidspunkt skal vi bruge register_shutdown_function til at indstille tilbagekaldsfunktionen til programafslutning. Det skal bemærkes, at det tilbagekald, der er indstillet af register_shutdown_function, udføres, efter at programmet er afsluttet, uanset om der er en fejl i processen. Så i denne tilbagekaldelse skal vi også afgøre, om der er opstået en fejl, og hvis der er opstået en fejl, registrerer vi den i loggen. For yderligere oplysninger henvises til følgende kode.
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);
}