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