PHP grípur FATAL stigavillur
Opinber tilvísun
Opinber vefsíða set_error_handler register_shutdown_functionHvernig á að ná öllum villum fullkomlega
Set_error_handler er hægt að nota til að fanga flestar villutegundir.Þegar kemur upp FATAL stigavillu vegna þess að PHP lýkur aðgerðinni beint, er ekki hægt að kalla til baka aðgerð stillt af set_error_handler. Á þessum tíma þurfum við að nota register_shutdown_function til að stilla svarhringingaraðgerðina fyrir lúkningu forrits. Rétt er að taka fram að svarhringingin sem sett er af register_shutdown_function er framkvæmd eftir að forritinu er slitið, óháð því hvort villa er í ferlinu. Svo í þessu símtali þurfum við líka að ákvarða hvort villa hafi átt sér stað og ef villa hefur átt sér stað munum við skrá hana í skránni. Nánari upplýsingar er að finna í eftirfarandi kóða.
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);
}