錯誤處理
在你的程序里使用以下的函數,CodeIgniter將允許你建立自己的錯誤報告。另外,他有一個錯誤記錄類能夠將錯誤和調試信息保存為文本文檔。
注意: 在默認的情況下, CodeIgniter 會顯示所有的PHP錯誤. 但是當你開發(fā)程序結束時,你可能想要改變這個情況. 你會發(fā)現在index.php文件頂端有這個函數error_reporting(),通過它可以進行對錯誤的設置。 即使你關閉了錯誤報告,當有錯誤發(fā)生時,錯誤記錄也不會停止。
不像大多數系統(tǒng), CodeIgniter的錯誤報告函數是一個簡單的程序接口,可以在整個應用程序里使用。 不用考慮類或者是函數的范圍,這種辦法可以直接觸發(fā)錯誤通知。
可以使用以下函數來產生錯誤消息:
show_error('消息' [, int $status_code = 500 ] [, string $heading = 'An Error Was Encountered'])
這個函數將會使用以下錯誤模版來顯示錯誤消息:
application/errors/error_general.php
可選參數 $status_code 決定在顯示錯誤的同時將會發(fā)送哪種 HTTP 狀態(tài)代碼。
可選參數 $heading 決定錯誤模版h1標簽內容。
show_404('頁面' [, 'log_error'])
這個函數將會使用以下錯誤模版來顯示 404 錯誤信息:
application/errors/error_404.php
傳遞給該函數的字符串代表的是找不到的文件路徑。注意CodeIgniter會在找不到目標控制器情況下,自動顯示404消息。
CodeIgniter自動記錄任何 show_404() 函數調用。設置第二個可選的參數為FALSE將跳過記錄
log_message('級別', '消息')
這個函數可以讓你將消息寫入記錄文件中。你必須在第一個參數中選擇三個“級別“中的任何一個, 指明它是那一類消息(調試 debug, 錯誤 error, 信息info)。 第二個參數是消息本身。 例如:
if ($some_var == "")
{
????log_message('error', 'Some variable did not contain a value.');
}
else
{
????log_message('debug', 'Some variable was correctly set');
}
log_message('info', 'The purpose of some variable is to provide some value.');
有三種不同類型的消息:
- 錯誤類型的消息。 這種是真正的錯誤消息. 例如PHP錯誤或者用戶錯誤。
- 調試類型的消息。 這種是用來幫助調試的消息。 例如, 如果當一個類被初始化時,你可以將這個初始化紀錄下來,然后用于調試。
- 信息類型的消息。 這種是最低優(yōu)先級別的消息,它只是簡單的提供了關于運行的一些信息。 CodeIgniter 不會自動產生任何信息類型的消息,但是你可能會在你的程序里使用它
注意: 確保"logs" 文件夾是可寫的,才能準確地將消息寫入記錄文件中。此外, 你必須設置application/config/config.php文件中的"threshold"設定,通過設置“threshold“,你可以只記錄錯誤類型的消息,而不用記錄其他兩種。如果你將“threshold“設為0,記錄就會被禁止。
?