PHP sugauna FATAL lygio klaidas

Oficiali nuoroda

Oficiali svetainė set_error_handler register_shutdown_function

Kaip puikiai sugauti visas klaidas

„set_error_handler“ gali būti naudojamas užfiksuoti daugumą klaidų tipų. Kai įvyksta FATAL lygio klaida, nes PHP tiesiogiai nutraukia operaciją, negalima suaktyvinti set_error_handler nustatytos atgalinio skambinimo funkcijos. Šiuo metu turime naudoti registro_šjungimo_funkciją, kad nustatytume atgalinio skambinimo funkciją programos nutraukimui. Reikėtų pažymėti, kad „register_shutdown_function“ nustatytas atgalinis skambutis vykdomas nutraukus programą, neatsižvelgiant į tai, ar procese yra klaida. Taigi šiame skambutyje taip pat turime nustatyti, ar įvyko klaida, o jei įvyko klaida, tai įrašysime į žurnalą. Išsamesnės informacijos ieškokite šiame 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);
}