PHP vang FATALE foute op

Amptelike verwysing

Amptelike webwerf set_error_handler register_shutdown_function

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