PHP FATAL darajasidagi xatolarni ushlaydi

Rasmiy ma'lumotnoma

Rasmiy veb-sayt set_error_handler register_shutdown_function

Qanday qilib barcha xatolarni mukammal ushlash kerak

set_error_handler ko'pgina xato turlarini olish uchun ishlatilishi mumkin.FATAL darajasidagi xatoga duch kelganda, PHP operatsiyani to'g'ridan-to'g'ri tugatganligi sababli, set_error_handler tomonidan o'rnatilgan qayta qo'ng'iroq funksiyasini ishga tushirish mumkin emas. Ayni paytda, biz dasturni bekor qilish uchun qayta qo'ng'iroq qilish funktsiyasini o'rnatish uchun register_shutdown_function-dan foydalanishimiz kerak. Shuni ta'kidlash kerakki, registr_shutdown_function tomonidan o'rnatilgan qayta qo'ng'iroq, bu jarayonda xato bo'lishidan qat'i nazar, dastur tugatilgandan so'ng amalga oshiriladi. Shunday qilib, ushbu qayta qo'ng'iroq paytida biz xatolik yuz berganligini aniqlashimiz kerak va agar xato yuzaga kelgan bo'lsa, uni jurnalga yozib qo'yamiz. Tafsilotlar uchun quyidagi kodga murojaat qiling.

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