首頁  >  文章  >  後端開發  >  PHP中的錯誤與異常

PHP中的錯誤與異常

WBOY
WBOY原創
2016-07-29 09:16:171445瀏覽

錯誤與異常是兩個完全不同的概念

錯誤

錯誤類型

共16個

1 E_ERROR (integer)致命的運行時錯誤。這類錯誤一般是不可恢復的情況,例如記憶體分配所導致的問題。後果是導致腳本終止不再繼續運作。 2E_WARNING (integer)運行時警告 (非致命錯誤)。僅給出提示訊息,但是腳本不會終止運行。 4E_PARSE (integer)編譯時語法解析錯誤。解析錯誤僅由分析器產生。 8E_NOTICE (integer)運行時通知。表示腳本遇到可能會表現為錯誤的情況,但是在可以正常運作的腳本裡面也可能會有類似的通知。 16E_CORE_ERROR (integer)在PHP初始化啟動過程中發生的致命錯誤。這個錯誤類似 E_ERROR,但是是由PHP引擎核心產生的。 since PHP 432E_CORE_WARNING (integer)PHP初始化啟動過程中發生的警告 (非致命錯誤) 。類似 E_WARNING,但是是PHP引擎核心產生的。 since PHP 464E_COMPILE_ERROR (integer)致命編譯時錯誤。類似E_ERROR, 但是是由Zend腳本引擎產生的。 since PHP 4128E_COMPILE_WARNING (integer)編譯時警告 (非致命錯誤)。類似 E_WARNING,但是是由Zend腳本引擎產生的。 since PHP 4256E_USER_ERROR (integer)用戶產生的錯誤訊息。類似 E_ERROR, 但是是由使用者自己在程式碼中使用PHP函數 trigger_error()來產生的。 since PHP 4512E_USER_WARNING (integer)用戶產生的警告訊息。類似 E_WARNING, 但是是由使用者自己在程式碼中使用PHP函數 trigger_error()來產生的。 since PHP 41024E_USER_NOTICE (integer)用戶產生的通知資訊。類似 E_NOTICE, 但是是由使用者自己在程式碼中使用PHP函數 trigger_error()來產生的。 since PHP 42048E_STRICT (integer)啟用 PHP 對程式碼的修改建議,以確保程式碼具有最佳的互通性和向前相容性。 since PHP 54096E_RECOVERABLE_ERROR (integer)可被捕捉的致命錯誤。 它表示發生了一個可能非常危險的錯誤,但還沒有導致PHP引擎處於不穩定的狀態。 如果該錯誤沒有被使用者自訂句柄捕獲 (參見 set_error_handler()),將成為一個 E_ERROR 從而腳本會終止運行。 since PHP 5.2.08192E_DEPRECATED (integer)運行時通知。啟用後將會對在未來版本中可能無法正常運作的程式碼給予警告。 since PHP 5.3.016384E_USER_DEPRECATED (integer)用戶產少的警告訊息。 類似 E_DEPRECATED, 但是是由使用者自己在程式碼中使用PHP函數 trigger_error()來產生的。 since PHP 5.3.030719E_ALL (integer)E_STRICT出外的所有錯誤和警告訊息。 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously reee
<code>if (ereg('/llo/', 'hello world')) {
    echo 'yes2';
} else {
    echo 'no2';
}
</code>
<code>Deprecated: Function ereg() is deprecated in /Users/weiheli/www/php/003.php on line 3
no
</code>
輸出
<code>$arr = ['a'=>'aaa', 'b'=>'bbb'];
echo $arr[a];
</code>
值。
錯誤等級輸出 (3) Warning 警告等級
(4) Fatal error 致命等級

<code>Notice: Use of undefined constant a - assumed 'a' in /Users/weiheli/www/php/003.php on line 4
aaa
</code>
輸出

<code>settype($var, 'abc');
echo $var;
</code>
(5) Parse errorr 輸出等級的錯誤

配置錯誤

<code>Warning: settype(): Invalid type in /Users/weiheli/www/php/003.php on line 3
</code>
可以在運行時設定error_reporting 指令

<code>// 调用未定义的函数
fn(12);
</code>
也可以使用

ini_set

函數設定

記錄日誌函數

<code>Fatal error: Call to undefined function fn() in /Users/weiheli/www/php/003.php on line 3
</code>
自訂錯誤處理

<code>echo 'hello world'
</code>

異常

<code>Parse error: parse error, expecting `','' or `';'' in /Users/weiheli/www/php/003.php on line 3
</code>

從上面的程式碼可以看出,PHP中不會自動拋出異常,一定要使用

throw

,這一點與Java不同

re內建異常類別如PDO不用

throw

throw之後的語句不會被執行

try不能獨立使用

<code>; 是否显示错误。解析错误始终都会显示
display_errors = On

; 显示哪些错误
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting = E_ALL
</code>
自訂異常處理

<code>error_reporting()
</code>
未經博主允許不得轉載。

以上就介紹了PHP的錯誤與異常,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn