2009年4月23日 星期四

PHP 錯誤處理-錯誤等級相關函式 error_reporting

error_reporting()  - 指定PHP程式只需要回報的錯誤等級其他的一律忽略。

參數說明:

Value

Constant

Description

Note

1E_ERROR執行時期致命的錯誤
2E_WARNING執行時期錯誤警告
4E_PARSE編譯時的程式剖析錯誤
8E_NOTICE執行時期的提醒
16E_CORE_ERRORPHP 引擎啟動執行時產生的致命錯誤
32E_CORE_WARNINGPHP 引擎啟動執行時產生的警告since PHP 4
64E_COMPILE_ERROR致命的編譯時錯誤since PHP 4
128E_COMPILE_WARNING致命的編譯時警告since PHP 4
256E_USER_ERROR使用者定義的錯誤since PHP 4
512E_USER_WARNING使用者定義的警告since PHP 4
1024E_USER_NOTICE使用者定義的提醒since PHP 4
2048E_STRICT編碼標準化警告(建議如何修改以向前兼容)since PHP 5
4096E_RECOVERABLE_ERROR接近致命的運行時錯誤,若未被捕獲則視同E_ERRORsince PHP 5.2.0
8192E_DEPRECATEDRun-time notices. Enable this to receive warnings about code that will not work in future versions. since PHP 5.3.0
16384E_USER_DEPRECATEDUser-generated warning message. This is like an E_DEPRECATED, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 5.3.0
30719E_ALL所有的錯誤、警告32767 in PHP 6, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously




範例:
1/0 會產生一個 WARNING 的錯誤等級,先將程式錯誤等級設為 E_ERROR ,則不會有錯誤訊息出現,因為已經被忽略了。
<?php
error_reporting(E_ERROR);
printf("%d\n", 1/0);

error_reporting(E_WARNING);
printf("%d\n", 1/0);
?>



輸出結果:
0
Warning: Division by zero in /var/www/html/error1.php on line 6
0

參考文件:
http://tw2.php.net/manual/en/errorfunc.constants.php#errorfunc.constants.errorlevels.e-error

沒有留言: