+ +
+

Error Handling

+

CodeIgniter lets you build error reporting into your applications using +the functions described below. In addition, it has an error logging +class that permits error and debugging messages to be saved as text +files.

+
+

Note

+

By default, CodeIgniter displays all PHP errors. You might +wish to change this behavior once your development is complete. You’ll +find the error_reporting() function located at the top of your main +index.php file. Disabling error reporting will NOT prevent log files +from being written if there are errors.

+
+

Unlike most systems in CodeIgniter, the error functions are simple +procedural interfaces that are available globally throughout the +application. This approach permits error messages to get triggered +without having to worry about class/function scoping.

+

CodeIgniter also returns a status code whenever a portion of the core +calls exit(). This exit status code is separate from the HTTP status +code, and serves as a notice to other processes that may be watching of +whether the script completed successfully, or if not, what kind of +problem it encountered that caused it to abort. These values are +defined in application/config/constants.php. While exit status codes +are most useful in CLI settings, returning the proper code helps server +software keep track of your scripts and the health of your application.

+

The following functions let you generate errors:

+
+
+show_error($message, $status_code, $heading = 'An Error Was Encountered')
+
+++ + + + + + +
Parameters:
    +
  • $message (mixed) – Error message
  • +
  • $status_code (int) – HTTP Response status code
  • +
  • $heading (string) – Error page heading
  • +
+
Return type:

void

+
+

This function will display the error message supplied to it using +the error template appropriate to your execution:

+
application/views/errors/html/error_general.php
+
+
+

or:

+
+
application/views/errors/cli/error_general.php
+

The optional parameter $status_code determines what HTTP status +code should be sent with the error. If $status_code is less +than 100, the HTTP status code will be set to 500, and the exit +status code will be set to $status_code + EXIT__AUTO_MIN. +If that value is larger than EXIT__AUTO_MAX, or if +$status_code is 100 or higher, the exit status code will be set +to EXIT_ERROR. +You can check in application/config/constants.php for more detail.

+
+ +
+
+show_404($page = '', $log_error = TRUE)
+
+++ + + + + + +
Parameters:
    +
  • $page (string) – URI string
  • +
  • $log_error (bool) – Whether to log the error
  • +
+
Return type:

void

+
+

This function will display the 404 error message supplied to it +using the error template appropriate to your execution:

+
application/views/errors/html/error_404.php
+
+
+

or:

+
+
application/views/errors/cli/error_404.php
+

The function expects the string passed to it to be the file path to +the page that isn’t found. The exit status code will be set to +EXIT_UNKNOWN_FILE. +Note that CodeIgniter automatically shows 404 messages if +controllers are not found.

+

CodeIgniter automatically logs any show_404() calls. Setting the +optional second parameter to FALSE will skip logging.

+
+ +
+
+log_message($level, $message)
+
+++ + + + + + +
Parameters:
    +
  • $level (string) – Log level: ‘error’, ‘debug’ or ‘info’
  • +
  • $message (string) – Message to log
  • +
+
Return type:

void

+
+

This function lets you write messages to your log files. You must +supply one of three “levels” in the first parameter, indicating what +type of message it is (debug, error, info), with the message itself +in the second parameter.

+

Example:

+
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.');
+
+
+

There are three message types:

+
    +
  1. Error Messages. These are actual errors, such as PHP errors or +user errors.
  2. +
  3. Debug Messages. These are messages that assist in debugging. For +example, if a class has been initialized, you could log this as +debugging info.
  4. +
  5. Informational Messages. These are the lowest priority messages, +simply giving information regarding some process.
  6. +
+
+

Note

+

In order for the log file to actually be written, the +logs/ directory must be writable. In addition, you must +set the “threshold” for logging in +application/config/config.php. You might, for example, +only want error messages to be logged, and not the other +two types. If you set it to zero logging will be disabled.

+
+
+ +
+ + +