CodeIgniter - 錯誤處理



很多時候,在使用應用程式時,我們會遇到錯誤。如果錯誤沒有得到妥善處理,對使用者來說是非常惱人的。CodeIgniter 提供了一種簡單的錯誤處理機制。

您希望在應用程式處於開發模式而不是生產模式時顯示這些訊息,因為錯誤訊息可以在開發階段輕鬆解決。

可以透過更改以下 index.php 檔案中的行來更改應用程式的環境。這可以設定為任何值,但通常為此目的使用三個值(開發、測試、生產)。

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

不同的環境需要不同級別的錯誤報告。預設情況下,開發模式將顯示錯誤,而測試和生產模式將隱藏它們。CodeIgniter 提供瞭如下所示的三個函式來處理錯誤。

  • show_error() 函式以 HTML 格式在螢幕頂部顯示錯誤。

語法

show_error($message, $status_code, $heading = 'An Error Was Encountered')

引數

  • $message (混合) - 錯誤訊息

  • $status_code (整數) - HTTP 響應狀態碼

  • $heading (字串) - 錯誤頁面標題

返回值型別

混合
  • show_404() 函式在您嘗試訪問不存在的頁面時顯示錯誤。

語法

show_404($page = '', $log_error = TRUE)

引數

  • $page (字串) – URI 字串

  • $log_error (布林) – 是否記錄錯誤

返回值型別

  • log_message() 函式用於寫入日誌訊息。當您想要編寫自定義訊息時,這很有用。

語法

log_message($level, $message, $php_error = FALSE)

引數

  • $level (字串) - 日誌級別:'error'、'debug' 或 'info'

  • $message (字串) - 要記錄的訊息

  • $php_error (布林) - 我們是否正在記錄本機 PHP 錯誤訊息

返回值型別

可以在 application/config/config.php 檔案中啟用日誌記錄。以下是 config.php 檔案的螢幕截圖,您可以在其中設定閾值。

/*
|--------------------------------------------------------------------------------
|   Error Logging Threshold
|--------------------------------------------------------------------------------
| You can enable error logging by setting a threshold over zero. The 
| threshold determines what gets logged. Threshold options are:
|
|   0 = Disable logging, Error logging TURNED OFF
|   1 = Error Message (including PHP errors)
|   2 = Debug Message
|   3 = Informational Messages
|   4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
|   array(2) = Debug Message, without Error Messages
| For a live site you'll usually only enable Errors (1) to be logged otherwise 
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;

您可以在 application/log/ 中找到日誌訊息。在啟用日誌檔案之前,請確保此目錄可寫。

可以在 application/views/errors/cliapplication/views/errors/html 中找到各種錯誤訊息模板。

廣告