PHP vang FATALE foute op
Amptelike verwysing
Amptelike webwerf set_error_handler register_shutdown_functionHoe om alle foute perfek op te vang
set_error_handler kan gebruik word om die meeste fouttipes vas te lê. Wanneer 'n FATAL-vlakfout ondervind word, omdat PHP die bewerking direk beëindig, kan die terugbelfunksie wat deur set_error_handler ingestel is, nie geaktiveer word nie. Op hierdie stadium moet ons register_afsluitfunksie gebruik om die terugbelfunksie vir programbeëindiging in te stel. Daar moet op gelet word dat die terugbel wat deur register_shutdown_function ingestel is, uitgevoer word nadat die program beëindig is, ongeag of daar 'n fout in die proses is. In hierdie terugbel moet ons ook vasstel of 'n fout voorgekom het, en as 'n fout plaasgevind het, sal ons dit in die logboek opteken. Raadpleeg die volgende kode vir meer inligting.
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);
}