PHP 錯誤處理

PHP 錯誤處理
在 PHP 中,默認的錯誤處理很簡單。一條錯誤消息會被髮送到瀏覽器,這條消息帶有文件名、行號以及描述錯誤的消息。
。。。。。。。。。。
PHP 錯誤處理
在創建腳本和 Web 應用程序時,錯誤處理是一個重要的部分。如果您的代碼缺少錯誤檢測編碼,那麼程序看上去很不專業,也爲安全風險敞開了大門。
線面是一些最爲重要的錯誤檢測方法。
將爲您講解不同的錯誤處理方法:
簡單的 "die()" 語句
自定義錯誤和錯誤觸發器
錯誤報告
。。。。。。。。。。
基本的錯誤處理:使用 die() 函數
。。。。。。。。。。
創建自定義錯誤處理器
創建一個自定義的錯誤處理器非常簡單。我們很簡單地創建了一個專用函數,可以在 PHP 中發生錯誤時調用該函數。
該函數必須有能力處理至少兩個參數 (error level 和 error message),但是可以接受最多五個參數(可選的:file, line-number 和 error context):
語法:
error_function(error_level,error_message,
error_file,error_line,error_context)
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 所有錯誤和警告。(在 PHP 5.4 中,E_STRICT 成爲 E_ALL 的一部分)
。。。。。。。。。。。。
設置錯誤處理程序
PHP 的默認錯誤處理程序是內建的錯誤處理程序。我們打算把上面的函數改造爲腳本運行期間的默認錯誤處理程序。
可以修改錯誤處理程序,使其僅應用到某些錯誤,這樣腳本就能以不同的方式來處理不同的錯誤。
。。。。。。。。。。。。
觸發錯誤
在腳本中用戶輸入數據的位置,當用戶的輸入無效時觸發錯誤是很有用的。在 PHP 中,這個任務由 trigger_error() 函數完成。
可能的錯誤類型:
E_USER_ERROR - 致命的用戶生成的 run-time 錯誤。錯誤無法恢復。腳本執行被中斷。
E_USER_WARNING - 非致命的用戶生成的 run-time 警告。腳本執行不被中斷。
E_USER_NOTICE - 默認。用戶生成的 run-time 通知。在腳本發現可能有錯誤時發生,但也可能在腳本正常運行時發生。
。。。。。。。。。。。。
錯誤記錄
在默認的情況下,根據在 php.ini 中的 error_log 配置,PHP 向服務器的記錄系統或文件發送錯誤記錄。通過使用 error_log() 函數,您可以向指定的文件或遠程目的地發送錯誤記錄。
通過電子郵件向您自己發送錯誤消息,是一種獲得指定錯誤的通知的好辦法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章