PHP uztver FATAL līmeņa kļūdas

Oficiālā atsauce

Oficiālā mājas lapa set_error_handler register_shutdown_function

Kā 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);
}