處理在我的工程來抓我已經建立了我的錯誤處理機制上的所有PHP錯誤如下:錯誤笨
- 我在
index.php
文件,該文件將覆蓋php.ini
文件 任何設置error_reporting()
- 錯誤處理程序使用
set_error_handler
在system/codeigniter/CodeIgniter.php
設置 - 這個錯誤處理程序,_exception_handler
,是 在system/codeigniter/Common.php
- 的發現函數忽略
E_STRICT
錯誤,如果是,你error_reporting()
功能index.php
指定的 嚴重性調用show_php_error
功能從異常系統庫和記錄錯誤根據不管你已經在你的config.php
文件 - 的處理程序中設置返回
FALSE
,所以在這個PHP繼續處理 錯誤但是它通常會根據您的error_reporting
級別 和display_errors
設置。
讓我感到困惑的是E_ERROR
錯誤,即致命錯誤似乎沒有被_exception_handler
捕獲。這不僅僅是show_php_error
沒有被調用,它看起來像函數沒有被調用。這顯然是一個問題,因爲這意味着它們不會被show_php_error
處理或記錄。例如,如果我故意在控制器中輸入$this->load->views('foo');
,處理程序不會被調用。
任何有關錯誤處理的建議將不勝感激,謝謝!
我認爲這可能是PHP本身無法測試它的問題。如果您看到http://www.php.net/manual/en/function.error-reporting。php#70126你會發現在這種情況下,E_ERROR會導致類似於E_PARSE會做的事情。 – David 2013-02-10 23:36:43
你在用什麼環境? – bottleboot 2013-02-15 15:35:36