PHP 7 改變了大多數錯誤的報告方式。不同于傳統(PHP 5)的錯誤報告機制,現在大多數錯誤被作為 Error 異常拋出。
這種 Error 異??梢韵?Exception
異常一樣被第一個(gè)匹配的 try
/ catch
塊所捕獲。如果沒(méi)有匹配的
catch
塊,則調用異常處理函數(事先通過(guò) set_exception_handler() 注冊)進(jìn)行處理。
如果尚未注冊異常處理函數,則按照傳統方式處理:被報告為一個(gè)致命錯誤(Fatal Error)。
Error 類(lèi)并非繼承自 Exception
類(lèi),所以不能用 catch (Exception $e) { ... }
來(lái)捕獲
Error。你可以用
catch (Error $e) { ... }
,或者通過(guò)注冊異常處理函數(
set_exception_handler())來(lái)捕獲 Error。