PHP 錯誤異常


簡介

PHP 的 Exception 類實現了 Throwable 介面。ErrorException 類擴充套件了 Exception 類。ErrorException 旨在在您希望捕獲和處理原本會被忽略的錯誤(例如 Notice 或 Warning)時顯式丟擲。

PHP 核心包含以下預定義的錯誤常量

常量描述
1E_ERROR致命執行時錯誤。
2E_WARNING執行時警告(非致命錯誤)。
4E_PARSE編譯時解析錯誤。
8E_NOTICE執行時通知。
16E_CORE_ERROR在 PHP 初始啟動期間發生的致命錯誤。
32E_CORE_WARNING在 PHP 初始啟動期間發生的警告(非致命錯誤)。
64E_COMPILE_ERROR致命編譯時錯誤。
128E_COMPILE_WARNING編譯時警告(非致命錯誤)。
256E_USER_ERROR使用者生成的錯誤訊息。
512E_USER_WARNING使用者生成的警告訊息。
1024E_USER_NOTICE使用者生成的通知訊息。
2048E_STRICT如果啟用,PHP 會建議您對程式碼進行更改,以確保程式碼的互操作性和向前相容性。
4096E_RECOVERABLE_ERROR可捕獲的致命錯誤。
8192E_DEPRECATED執行時通知。
16384E_USER_DEPRECATED使用者生成的警告訊息。
32767E_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

更新於: 2020-09-21

347 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.