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