php學習筆記--error
不同的錯誤處理方法:簡單的die()語句自訂錯誤函數和錯誤觸發器錯誤報表
基本的錯誤處理:使用die()函數
if(!file_exists("welcome.txt")){ die("FIle not found");}else{ $file=fopen("welcome.txt","r");}
或者$file=fopen("webdictionary.txt","r") or die("Unable to open file!");
die(status):如果status是字串,則該函數會在推出前輸出字串。 如果status是認證,這個值會被用作退出狀態。退出狀態的值在0到254之間。退出狀態255由php保留,不會被使用。狀態0用於成功地終止程式。
建立自訂錯誤處理器:該函數必須有能力處理至少兩個參數(error level和error message),但是可以接受最多五個參數(可選的:file,line-number以及error context)。error_function(error_level,error_message,error_file,error_line,error_context)//錯誤報表層級,錯誤訊息,發送錯誤的檔案名稱,行號,規定一個數組(包含了當錯誤發生時在用的每個變數以及它們的值)
| 值 |
常量 |
描述 |
| 2 |
E_WARNING |
非致命的 run-time 錯誤。不暫停指令碼執行。 |
| 8 |
E_NOTICE |
Run-time 通知。指令碼發現可能有錯誤發生,但也可能在指令碼正常運行時發生。 |
| 256 |
E_USER_ERROR |
致命的使用者產生的錯誤。這類似於程式員使用 PHP 函數 trigger_error() 設定的 E_ERROR。
|
| 512 |
E_USER_WARNING |
非致命的使用者產生的警告。這類似於程式員使用 PHP 函數 trigger_error() 設定的 E_WARNING。
|
| 1024 |
E_USER_NOTICE |
使用者產生的通知。這類似於程式員使用 PHP 函數 trigger_error() 設定的 E_NOTICE。
|
| 4096 |
E_RECOVERABLE_ERROR |
可捕獲的致命錯誤。類似 E_ERROR,但可被使用者定義的處理常式捕獲。(參見 set_error_handler())
|
| 8191 |
E_ALL |
所有錯誤和警告,除層級 E_STRICT 以外。(在 PHP 6.0,E_STRICT 是 E_ALL 的一部分) |
function customError($errno,$errstr){echo "
Error:[$errno] $errstr
";echo "Ending Script";die();}
當上述錯誤被觸發時,它會取得錯誤層級和錯誤訊息。然後它會輸出錯誤層級和訊息,並終止指令碼。現在,已經建立了一個錯誤處理函數,我們需要確定在何時觸發該函數。
Set Error Handler:php的預設錯誤處理程式是內奸的錯誤處理程式。可以修改錯誤處理程式,使其僅應用到某些錯誤,這樣指令碼就可以不同的方式來處理不同的錯誤。
本例中,我們打算針對所有錯誤來使用我們的自訂錯誤處理程式。
set_error_handle(“customError”);當處理所有錯誤時,set_error_handler()僅需要一個參數,可以添加第二個參數來規定錯誤層級。
觸發錯誤:當使用者的輸入無效時觸發錯誤。由trigger_error()完成。$test=2;if($test>1){trigger_error("Value must be 1 or below");//大於1時觸發錯誤}
可能的錯誤類型:E_USER_ERROR:E_USER_WARNING:E_USER_NOTICE:
http://www.bkjia.com/PHPjc/851379.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/851379.htmlTechArticlephp學習筆記--error 不同的錯誤處理方法:簡單的die()語句自訂錯誤函數和錯誤觸發器錯誤報表 基本的錯誤處理:使用die()函數 if(!file_exis...