PHP tabab FATAL-taseme vead

Ametlik viide

Ametlik veebilehekülg set_error_handler register_shutdown_function

Kuidas kõik vead ideaalselt tabada

set_error_handlerit saab kasutada enamiku veatüüpide hõivamiseks. Kui ilmneb FATAL-taseme tõrge, kuna PHP lõpetab operatsiooni otse, ei saa set_error_handler-i määratud tagasihelistamisfunktsiooni käivitada. Sel hetkel peame programmi lõpetamiseks tagasihelistamisfunktsiooni määramiseks kasutama register_shutdown_function. Tuleb märkida, et register_shutdown_function määratud tagasihelistamine viiakse läbi pärast programmi lõpetamist, hoolimata sellest, kas protsessis on viga. Nii et selles tagasihelistamises peame ka kindlaks tegema, kas tõrge on tekkinud, ja kui tõrge on ilmnenud, registreerime selle logisse. Lisateavet leiate järgmisest koodist.

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