1.php的錯誤,警告,異常處理如何實現,那些函式用於處理對應的錯誤
php 異常提示分為三類 error/warning/notice
錯誤補充:
fatal error:致命錯誤(指令碼終止執行)
e_error // 致命的執行錯誤,錯誤無法恢復,暫停執行指令碼
e_core_error // php啟動時初始化過程中的致命錯誤
e_compile_error // 編譯時致命性錯,就像由zend指令碼引擎生成了乙個e_error
e_user_error // 自定義錯誤訊息。像用php函式trigger_error(錯誤型別設定為:e_user_error)
e_recoverable_error //可**捉的致命錯誤。 它表示發生了乙個可能非常危險的錯誤,但是還沒有導致php引擎處於不穩定的狀態。
parse error:編譯時解析錯誤,語法錯誤(指令碼終止執行)
e_parse //編譯時的語法解析錯誤
警告補充:警告錯誤(僅給出提示資訊,指令碼不終止執行)
e_warning // 執行時警告 (非致命錯誤)。
e_core_warning // php初始化啟動過程中發生的警告 (非致命錯誤) 。
e_compile_warning // 編譯警告
e_user_warning // 使用者產生的警告資訊
異常通知補充:通知錯誤(僅給出通知資訊,指令碼不終止執行)
e_notice // 執行時通知。表示指令碼遇到可能會表現為錯誤的情況.
e_user_notice // 使用者產生的通知資訊。
php錯誤處理實現:
register_shutdown_function('funcname') // 引數是需要捕獲錯誤的函式名稱,但是register_shutdown_function,只能捕獲執行時候的致命錯誤,不能捕獲解釋時的執行錯誤,因為它時程式執行完成之後執行的函式(比如語法錯誤,這種執行時就會產生的錯誤時不會**捉的)
set_error_handler(『funcname』) //引數是需要捕獲的**的函式名,區別於register_shutdown_function,它是在函式執行期間捕獲到錯誤
當目標檔案執行遇到錯誤的時候,系統會**指定函式:
例子:<?php
register_shutdown_function( "fatal_handler" );
set_error_handler("error_handler");
define('e_fatal', e_error | e_user_error | e_core_error |
e_compile_error | e_recoverable_error| e_parse );
//獲取fatal error
function fatal_handler()
}//獲取所有的error
function error_handler($errno,$errstr,$errfile,$errline){
$str=<<
//error_get_last() 捕獲到的執行錯誤結果
//error_clear_last() 清除最後一次產生的錯誤資訊
//上面兩者可以捕獲所有錯誤,警告, 異常,但作效能考慮,不建議使用其捕獲警告異常
PHP 錯誤處理及異常處理
1.設定自己的錯誤處理函式 trigger error 捕捉使用者級別的錯誤。set error handler 使用者自定義錯誤處理函式。2.捕獲異常 捕獲異常當然用trycatch 當然 中使用的異常處理類是thinkphp中,throw exception 為thinkphp的丟擲異常函式 另...
PHP 錯誤處理
在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...
PHP 錯誤處理
在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...