|
Fatal error 一般是不需要捕獲的, 但是在一個(gè)復(fù)雜的程序中, 如果偶然出現(xiàn)內(nèi)存不足導(dǎo)致fatal error就難以處理了.
比如. fatal error 出在MySQL類中fetch的時(shí)候. 這個(gè)時(shí)候就很難定位到真正問題所在了.
php異常處理中 可以通過set_error_handler來捕獲. 但是卻只能捕獲 NOTICE/WARNING級(jí)別的錯(cuò)誤, 對于E_ERROR是無能為力的.
register_shutdown_function 能解決set_error_handler的不足.
通過此函數(shù)注冊好程序結(jié)束回調(diào)函數(shù), 就可以捕獲平時(shí)捕獲不到的錯(cuò)誤了. 再通過 error_get_last 對錯(cuò)誤進(jìn)行判斷. 就容易找出難以定位的問題了.
復(fù)制代碼 代碼如下:
function shutdown_function()
{
$e = error_get_last();
print_r($e);
}
register_shutdown_function('shutdown_function');
php技術(shù):PHP捕獲Fatal error錯(cuò)誤的方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。