PHP 錯誤異常
簡介
PHP 的 Exception 類實現了 Throwable 介面。ErrorException 類擴充套件了 Exception 類。ErrorException 旨在在您希望捕獲和處理原本會被忽略的錯誤(例如 Notice 或 Warning)時顯式丟擲。
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
異常的嚴重性由與上表中錯誤型別關聯的整數表示。
ErrorException 示例
在以下指令碼中,使用者定義的函式 errhandler 被設定為錯誤處理程式,並使用 set_error_handler() 函式。當遇到讀取檔案未找到的致命錯誤時,它會丟擲 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP