<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<title>CodeIgniter User Guide : Error Handling</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 1.6.0</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Error Handling
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">

<h1>Error Handling</h1>

<p>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.</p>

<p class="important"><strong>Note:</strong> By default, CodeIgniter displays all PHP errors.  You might
wish to change this behavior once your development is complete.  You'll find the <dfn>error_reporting()</dfn>
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.</p>

<p>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.</p>

<p>The following functions let you generate errors:</p>

<h2>show_error('<var>message</var>')</h2>
<p>This function will display the error message supplied to it using the following error template:</p>
<p><dfn>application/errors/</dfn><kbd>error_general.php</kbd></p>

<h2>show_404('<var>page</var>')</h2>
<p>This function will display the 404 error message supplied to it using the following error template:</p>
<p><dfn>application/errors/</dfn><kbd>error_404.php</kbd></p>

<p>The function expects the string passed to it to be the file path to the page that isn't found.
Note that CodeIgniter automatically shows 404 messages if controllers are not found.</p>


<h2>log_message('<var>level</var>', '<samp>message</samp>')</h2>

<p>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:</p>

<code>
if ($some_var == "")<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;log_message('error', 'Some variable did not contain a value.');<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;log_message('debug', 'Some variable was correctly set');<br />
}<br />
<br />
log_message('info', 'The purpose of some variable is to provide some value.');<br />
</code>

<p>There are three message types:</p>

<ol>
<li>Error Messages.  These are actual errors, such as PHP errors or user errors.</li>
<li>Debug Messages.  These are messages that assist in debugging. For example, if a class has been initialized, you could log this as debugging info.</li>
<li>Informational Messages.  These are the lowest priority messages, simply giving information regarding some process.  CodeIgniter doesn't natively generate any info messages but you may want to in your application.</li>
</ol>


<p class="important"><strong>Note:</strong> In order for the log file to actually be written, the
 "logs" folder must be writable.  In addition, you must set the "threshold" for logging.
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.</p>



</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="routing.html">URI Routing</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="caching.html">Page Caching</a>
</p>
<p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>