PHP FATAL düzey hataları yakalar
Resmi referans
Resmi internet sitesi set_error_handler register_shutdown_functionTüm hataları mükemmel bir şekilde yakalama
set_error_handler çoğu hata türünü yakalamak için kullanılabilir.FATAL düzeyinde bir hata ile karşılaşıldığında, PHP işlemi doğrudan sonlandırdığı için set_error_handler tarafından ayarlanan geri çağırma işlevi tetiklenemez. Şu anda, programın sonlandırılması için geri arama işlevini ayarlamak için register_shutdown_function işlevini kullanmamız gerekir. Register_shutdown_function tarafından ayarlanan geri çağırmanın, süreçte bir hata olup olmadığına bakılmaksızın program sonlandırıldıktan sonra yürütüldüğüne dikkat edilmelidir. Dolayısıyla bu geri aramada, bir hatanın oluşup oluşmadığını da belirlememiz gerekiyor ve bir hata meydana gelirse, bunu günlüğe kaydedeceğiz. Ayrıntılar için lütfen aşağıdaki koda bakın.
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);
}