在这篇文章中,我们将会看到如何捕获PHP中的致命错误(Fatal Errors)。在通常情况下这些错误是能不被捕获的,因为他们是“致命”的。
当你想要查看详细的、格式化后的错误页面,而不是PHP错误,或当你的程序由于致使错误而意外终止的时候,能捕获致命错误会很有用。
我们会用到register_shutdown_function()函数捕获这些错误,并根据我们的要求进行格式化。
请注意register_shutdown_function()函数都将会你的程序执行完后执行,无论你的程是否运行正常。
所以,在这个函数前执行任何操作我们都要检查是否真的有致命错误出现。如果出现致命错误,我们显示错误页面,否则,程序继续执行。我们用 error_get_last() 函数来获取上一个错误的详细信息。
function catch_fatal_error()
{
// Getting Last Error
$last_error = error_get_last();
// Check if Last error is of type FATAL
if(isset($last_error['type']) && $last_error['type']==E_ERROR)
{
// Fatal Error Occurs
// Do whatever you want for FATAL Errors
}
}
register_shutdown_function('catch_fatal_error');