PHP uztver FATAL līmeņa kļūdas
Oficiālā atsauce
Oficiālā mājas lapa set_error_handler register_shutdown_functionKā perfekti noķert visas kļūdas
set_error_handler var izmantot, lai attēlotu lielāko daļu kļūdu veidu. Ja rodas FATAL līmeņa kļūda, jo PHP tieši pārtrauc darbību, set_error_handler iestatīto atzvanīšanas funkciju nevar aktivizēt. Pašlaik mums jāizmanto register_shutdown_function, lai iestatītu atzvanīšanas funkciju programmas pārtraukšanai. Jāatzīmē, ka register_shutdown_function iestatītā atzvanīšana tiek izpildīta pēc programmas pārtraukšanas, neatkarīgi no tā, vai procesā ir kļūda. Tātad šajā atzvanī mums arī jānosaka, vai ir notikusi kļūda, un, ja ir notikusi kļūda, mēs to ierakstīsim žurnālā. Lai iegūtu sīkāku informāciju, lūdzu, skatiet šo kodu.
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);
}