PHP tabab FATAL-taseme vead
Ametlik viide
Ametlik veebilehekülg set_error_handler register_shutdown_functionKuidas 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);
}