PHP inakamata makosa ya kiwango cha FATAL
Rejea rasmi
Tovuti rasmi set_error_handler register_shutdown_functionJinsi ya kukamata makosa yote kikamilifu
set_error_handler inaweza kutumika kunasa aina nyingi za makosa. Wakati hitilafu ya kiwango cha FATAL inakabiliwa, kwa sababu PHP hukomesha operesheni moja kwa moja, kazi ya kupiga tena iliyowekwa na set_error_handler haiwezi kusababishwa. Kwa wakati huu, tunahitaji kutumia rejista_kuzima_utendaji ili kuweka kazi ya kupigia simu kukomesha programu. Ikumbukwe kwamba upigaji simu uliowekwa na rejista_shutdown_function hufanywa baada ya mpango kusitishwa, bila kujali ikiwa kuna hitilafu katika mchakato. Kwa hivyo katika upigaji simu huu, tunahitaji pia kubaini ikiwa kosa limetokea, na ikiwa kosa limetokea, tutarekodi kwenye logi. Kwa maelezo, tafadhali rejea nambari ifuatayo.
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);
}