這篇文章主要介紹了PHP捕獲Fatal error錯誤的方法,使用register_shutdown_function來捕獲Fatal error錯誤,需要的朋友可以參考下
Fatal error 一般是不需要捕獲的, 但是在一個複雜的程式中, 如果偶然出現記憶體不足導緻fatal error就難以處理了.
比如. fatal error 出在MySQL類中fetch的時候. 這個時候就很難定位到真正問題所在了.
PHP異常進行中 可以通過set_error_handler來捕獲. 但是卻隻能捕獲 NOTICE/WARNING級别的錯誤, 對于E_ERROR是無能為力的.
register_shutdown_function 能解決set_error_handler的不足.
通過此函數注冊好程式結束回調函數, 就可以捕獲平時捕獲不到的錯誤了. 再通過 error_get_last 對錯誤進行判斷. 就容易找出難以定位的問題了.
代碼如下:
function shutdown_function()
{
$e = error_get_last();
print_r($e);
}
register_shutdown_function('shutdown_function');