2、php的錯誤異常處理(自定義php的錯誤處理方式)
阿新 • • 發佈:2019-01-30
一、概述
自定義錯誤報告的處理方式,可以完全繞過標準的php錯誤處理函式,這樣就可以按照自己定義的 格式列印錯誤報告,或改變錯誤報告列印的位置,以下幾種情況可以考慮自定義錯誤處理。 1、可以記下錯誤的資訊,及時發現一些生產環境出現的問題。 2、可以遮蔽錯誤。 3、可以控制錯誤的輸出。 4、可以作為除錯工具。
二、使用set_error_handler() 函式來設定使用者自定義的錯誤異常。
三、程式碼段
// 在php中註冊一個函式,來處理錯誤報告,而不是原來的方式處理了。 set_error_handler('myerrorfn'); $mess = ''; // 自己的錯誤報告處理函式 /** * @param $error_type 錯誤型別 * @param $errpr_message 錯誤資訊 * @param $error_file 錯誤檔案 * @param $error_line 錯誤的行數 */ function myerrorfn($error_type, $error_message, $error_file, $error_line) { global $mess; $mess.= "發生的錯誤級別為{$error_type}, 錯誤的資訊為{$error_message}, 發生錯誤的檔案是{$error_file}, 發生錯誤的行數為{$error_line}"; } echo $mess;
通過上面測試程式碼可以很好解決安全和除錯方面的矛盾,但注意 E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING是不會被這個控制代碼處理的,也就是會用原始的方式顯示,不過通常情況下不會發生。 使用set_error_handler()後,error_reporting()將會失效。也就是所有錯誤都是由自定義的函式處理。