在這篇文章中,我們將會看到如何捕獲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');