PHP的Exception類別實作了Throwable介面。 ErrorException類別繼承了Exception類別。當您想要捕獲和處理否則會被忽略的錯誤,例如通知或警告時,可以明確地拋出ErrorException。
PHP核心包含以下預先定義的錯誤常數
#值 | 常數 | 描述 |
---|---|---|
1 | E_ERROR | 致命的執行階段錯誤。 |
2 | E_WARNING | 執行階段警告(非致命錯誤)。 |
4 | E_PARSE | 編譯時解析錯誤。 |
8 | E_NOTICE | 執行時間通知。 |
16 | E_CORE_ERROR | #在PHP的初始啟動過程中發生的致命錯誤。 |
32 | E_CORE_WARNING | 在PHP的初始啟動過程中發生的警告(非致命錯誤)。 |
64 | E_COMPILE_ERROR | 致命的編譯時錯誤。 |
128 | E_COMPILE_WARNING | 編譯時警告(非致命錯誤)。 |
256 | E_USER_ERROR | 使用者產生的錯誤訊息。 |
512 | E_USER_WARNING | 使用者產生的警告訊息。 |
1024 | E_USER_NOTICE | 使用者產生的通知訊息。 |
2048 | E_STRICT | #如果啟用,PHP建議更改您的程式碼,以確保程式碼的互通性和向前相容性。 |
4096 | E_RECOVERABLE_ERROR | 可捕獲的致命錯誤。 |
8192 | E_DEPRECATED | 執行階段通知。 |
16384 | E_USER_DEPRECATED | 使用者產生的警告訊息。 |
32767 | E_ALL | #所有錯誤和警告,E_STRICT |
除了從Exception類別繼承的屬性和方法外,ErrorException類別還引入了一個屬性和一個方法,如下所示−
protected int severity ; final public getSeverity ( void ) : int
異常的嚴重性由上表中與錯誤類型相關的整數表示
在下面的腳本中,使用者定義的函數errhandler透過通过set_error_handler()函數將strong>設定為錯誤處理程序。當遇到無法讀取檔案的致命錯誤時,它會拋出 ErrorException。
即時示範
<?php function errhandler($severity, $message, $file, $line) { if (!(error_reporting() & $severity)) { echo "no error"; return; } throw new ErrorException("Fatal Error:No such file or directory", 0, E_ERROR); } set_error_handler("errhandler"); /* Trigger exception */ try{ $data=file_get_contents("nofile.php"); echo $data; } catch (ErrorException $e){ echo $e->getMessage(); } ?>
上面的範例顯示以下輸出
Fatal Error:No such file or directory
以上是PHP ErrorException(PHP錯誤異常)的詳細內容。更多資訊請關注PHP中文網其他相關文章!