PHP ເອົາຂໍ້ຜິດພາດລະດັບ FATAL

ການອ້າງອິງທາງການ

ເວບໄຊທ໌ທາງການ set_error_handler register_shutdown_function

ວິທີການຈັບຂໍ້ຜິດພາດທັງ ໝົດ ຢ່າງສົມບູນ

set_error_handler ສາມາດໃຊ້ເພື່ອຈັບປະເພດຂໍ້ຜິດພາດສ່ວນໃຫຍ່ເມື່ອພົບຂໍ້ຜິດພາດໃນລະດັບ FATAL, ເພາະວ່າ PHP ຢຸດການ ດຳ ເນີນງານໂດຍກົງ, ຟັງຊັນການກັບຄືນຂອງ callback ທີ່ຕັ້ງໂດຍ set_error_handler ບໍ່ສາມາດເກີດຂຶ້ນໄດ້. ໃນເວລານີ້, ພວກເຮົາ ຈຳ ເປັນຕ້ອງໃຊ້ register_shutdown_function ເພື່ອ ກຳ ນົດ ໜ້າ ທີ່ການເອີ້ນຄືນ ສຳ ລັບການຢຸດໂຄງການ. ມັນຄວນຈະໄດ້ຮັບການສັງເກດວ່າການໂທຄືນທີ່ກໍານົດໂດຍ register_shutdown_function ແມ່ນຖືກປະຕິບັດຫຼັງຈາກໂປແກຼມສິ້ນສຸດລົງ, ບໍ່ວ່າຈະມີຂໍ້ຜິດພາດໃນຂະບວນການ. ສະນັ້ນໃນການເອີ້ນຄືນນີ້, ພວກເຮົາຍັງ ຈຳ ເປັນຕ້ອງ ກຳ ນົດວ່າມີຂໍ້ຜິດພາດເກີດຂື້ນຫຼືບໍ່, ແລະຖ້າມີຂໍ້ຜິດພາດເກີດຂື້ນ, ພວກເຮົາຈະບັນທຶກມັນໄວ້ໃນບັນທຶກ. ສຳ ລັບລາຍລະອຽດ, ກະລຸນາເບິ່ງລະຫັດຕໍ່ໄປນີ້.

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