PHP huomaa FATAL-tason virheet
Virallinen viite
Virallinen nettisivu set_error_handler register_shutdown_functionKuinka kaikki virheet saadaan kiinni täydellisesti
set_error_handler -sovellusta voidaan käyttää useimpien virhetyyppien sieppaamiseen. Kun FATAL-tason virhe ilmenee, koska PHP lopettaa toiminnon suoraan, set_error_handlerin asettamaa takaisintoimintoa ei voida käynnistää. Tällä hetkellä meidän on käytettävä register_shutdown_function-toimintoa soittopyynnön asettamiseksi ohjelman lopettamiseksi. On huomattava, että register_shutdown_function-toiminnon asettama takaisinsoitto suoritetaan ohjelman lopettamisen jälkeen riippumatta siitä, onko prosessissa virhe. Joten tässä takaisinsoitossa meidän on myös selvitettävä, onko virhe tapahtunut, ja jos virhe on tapahtunut, tallennamme sen lokiin. Katso lisätietoja seuraavasta koodista.
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);
}