# 錯誤處理
CodeIgniter 可以通過下面介紹的方法來在你的應用程序中生成錯誤報告。 另外,還有一個錯誤日志類用來將錯誤或調試信息保存到文本文件中。
>[info] 注解
> CodeIgniter 默認將顯示所有的 PHP 錯誤,你可能在開發結束之后 改變該行為。在你的 index.php 文件的頂部有一個 error_reporting() 函數,通過它可以修改錯誤設置。當發生錯誤時,禁用錯誤報告 并不會阻止向日志文件寫入錯誤信息。
和 CodeIgniter 中的大多數系統不同,錯誤函數是一個可以在整個應用程序中 使用的簡單接口,這讓你在使用該函數時不用擔心類或方法的作用域的問題。
當任何一處核心代碼調用?exit()?時,CodeIgniter 會返回一個狀態碼。 這個狀態碼和 HTTP 狀態碼不同,是用來通知其他程序 PHP 腳本是否成功運行的, 如果運行不成功,又是什么原因導致了腳本退出。狀態碼的值被定義在?application/config/constants.php?文件中。狀態碼在 CLI 形式下非常有用, 可以幫助你的服務器跟蹤并監控你的腳本。
下面的函數用于生成錯誤信息:
>[info] ### show_error($message,?$status_code,?$heading = 'An Error Was Encountered')
參數:
* **$message**?(mixed) -- Error message
* **$status_code**?(int) -- HTTP Response status code
* **$heading**?(string) -- Error page heading
返回類型:
void
該函數使用下面的錯誤模板來顯示錯誤信息:
~~~
application/views/errors/html/error_general.php
~~~
或:
> application/views/errors/cli/error_general.php
可選參數?$status_code?將決定發送什么 HTTP 狀態碼。 如果?$status_code?小于 100,HTTP 狀態碼將被置為 500 , 退出狀態碼將被置為$status_code?+?EXIT__AUTO_MIN?。 如果它的值大于?EXIT__AUTO_MAX?或者如果?$status_code?大于等于 100 ,退出狀態碼將被置為?EXIT_ERROR。 詳情可查看?application/config/constants.php?文件。
>[info] ### show_404($page = '',?$log_error = TRUE)
參數:
* **$page**?(string) -- URI string
* **$log_error**?(bool) -- Whether to log the error
返回類型:
void
該函數使用下面的錯誤模板來顯示 404 錯誤信息:
~~~
application/views/errors/html/error_404.php
~~~
或:
> application/views/errors/cli/error_404.php
傳遞給該函數的字符串代表的是找不到的文件路徑。退出狀態碼 將設置為?EXIT_UNKNOWN_FILE?。 注意如果找不到控制器 CodeIgniter 將自動顯示 404 錯誤信息。
默認 CodeIgniter 會自動將?show_404()?函數調用記錄到錯誤日志中。 將第二個參數設置為 FALSE 將跳過記錄日志。
>[info] ### log_message($level,?$message,?$php_error = FALSE)
參數:
* **$level**?(string) -- Log level: 'error', 'debug' or 'info'
* **$message**?(string) -- Message to log
* **$php_error**?(bool) -- Whether we're logging a native PHP error message
返回類型:
void
該函數用于向你的日志文件中寫入信息,第一個參數你必須提供 三個信息級別中的一個,用于指定記錄的是什么類型的信息(調試, 錯誤和一般信息),第二個參數為信息本身。
示例:
~~~
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.');
~~~
有三種信息類型:
1. 錯誤信息。這些是真正的錯誤,譬如 PHP 錯誤或用戶錯誤。
2. 調試信息。這些信息幫助你調試程序,譬如,你可以在一個類 初始化的地方記錄下來作為調試信息。
3. 一般信息。這些是最低級別的信息,簡單的給出程序運行過程中的一些信息。
注解
為了保證日志文件被正確寫入,logs/?目錄必須設置為可寫的。 此外,你必須要設置?application/config/config.php?文件中的 "threshold" 參數,舉個例子,譬如你只想記錄錯誤信息,而不想 記錄另外兩種類型的信息,可以通過這個參數來控制。如果你將 該參數設置為 0 ,日志就相當于被禁用了。
- 歡迎使用 CodeIgniter
- 安裝說明
- 下載 CodeIgniter
- 安裝說明
- 從老版本升級
- 疑難解答
- CodeIgniter 概覽
- CodeIgniter 將從這里開始
- CodeIgniter 是什么?
- 支持特性
- 應用程序流程圖
- 模型-視圖-控制器
- 設計與架構目標
- 教程 - 內容提要
- 加載靜態內容
- 讀取新聞條目
- 創建新聞條目
- 結束語
- 常規主題
- CodeIgniter URL
- 控制器
- 保留名稱
- 視圖
- 模型
- 輔助函數
- 使用 CodeIgniter 類庫
- 創建類庫
- 使用 CodeIgniter 驅動器
- 創建驅動器
- 創建核心系統類
- 創建附屬類
- 鉤子 - 擴展框架核心
- 自動加載資源
- 公共函數
- 兼容性函數
- URI 路由
- 錯誤處理
- 網頁緩存
- 程序分析
- 以 CLI 方式運行
- 管理你的應用程序
- 處理多環境
- 在視圖文件中使用 PHP 替代語法
- 安全
- PHP 開發規范
- 類庫參考
- 基準測試類
- 緩存驅動器
- 日歷類
- 購物車類
- 配置類
- Email 類
- 加密類
- 加密類(新版)
- 文件上傳類
- 表單驗證類
- FTP 類
- 圖像處理類
- 輸入類
- Javascript 類
- 語言類
- 加載器類
- 遷移類
- 輸出類
- 分頁類
- 模板解析類
- 安全類
- Session 類
- HTML 表格類
- 引用通告類
- 排版類
- 單元測試類
- URI 類
- 用戶代理類
- XML-RPC 與 XML-RPC 服務器類
- Zip 編碼類
- 數據庫參考
- 數據庫快速入門: 示例代碼
- 數據庫配置
- 連接你的數據庫
- 查詢
- 生成查詢結果
- 查詢輔助函數
- 查詢構造器類
- 事務
- 數據庫元數據
- 自定義函數調用
- 數據庫緩存類
- 數據庫工廠類
- 數據庫工具類
- 數據庫驅動器參考
- 輔助函數參考
- 數組輔助函數
- 驗證碼輔助函數
- Cookie 輔助函數
- 日期輔助函數
- 目錄輔助函數
- 下載輔助函數
- 郵件輔助函數
- 文件輔助函數
- 表單輔助函數
- HTML 輔助函數
- 語言輔助函數
- Inflector 輔助函數
- 數字輔助函數
- 路徑輔助函數
- 安全輔助函數
- 表情輔助函數
- 字符串輔助函數
- 文本輔助函數
- 排版輔助函數
- URL 輔助函數
- XML 輔助函數
- 向 CodeIgniter 貢獻你的力量