错误处理
在你的程序里使用以下的函数,CodeIgniter将允许你建立自己的错误报告。另外,他有一个错误记录类能够将错误和调试信息保存为文本文档。
注意: 在默认的情况下, CodeIgniter 会显示所有的PHP错误. 但是当你开发程序结束时,你可能想要改变这个情况. 你会发现在index.php文件顶端有这个函数error_reporting(),通过它可以进行对错误的设置。 即使你关闭了错误报告,当有错误发生时,错误记录也不会停止。
不像大多数系统, CodeIgniter的错误报告函数是一个简单的程序接口,可以在整个应用程序里使用。 不用考虑类或者是函数的范围,这种办法可以直接触发错误通知。
可以使用以下函数来产生错误消息:
show_error('消息' [, int $status_code = 500 ] [, string $heading = 'An Error Was Encountered'])
这个函数将会使用以下错误模版来显示错误消息:
application/errors/error_general.php
可选参数 $status_code 决定在显示错误的同时将会发送哪种 HTTP 状态代码。
可选参数 $heading 决定错误模版h1标签内容。
show_404('页面' [, 'log_error'])
这个函数将会使用以下错误模版来显示 404 错误信息:
application/errors/error_404.php
传递给该函数的字符串代表的是找不到的文件路径。注意CodeIgniter会在找不到目标控制器情况下,自动显示404消息。
CodeIgniter自动记录任何 show_404() 函数调用。设置第二个可选的参数为FALSE将跳过记录
log_message('级别', '消息')
这个函数可以让你将消息写入记录文件中。你必须在第一个参数中选择三个“级别“中的任何一个, 指明它是那一类消息(调试 debug, 错误 error, 信息info)。 第二个参数是消息本身。 例如:
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错误或者用户错误。
- 调试类型的消息。 这种是用来帮助调试的消息。 例如, 如果当一个类被初始化时,你可以将这个初始化纪录下来,然后用于调试。
- 信息类型的消息。 这种是最低优先级别的消息,它只是简单的提供了关于运行的一些信息。 CodeIgniter 不会自动产生任何信息类型的消息,但是你可能会在你的程序里使用它
注意: 确保"logs" 文件夹是可写的,才能准确地将消息写入记录文件中。此外, 你必须设置application/config/config.php文件中的"threshold"设定,通过设置“threshold“,你可以只记录错误类型的消息,而不用记录其他两种。如果你将“threshold“设为0,记录就会被禁止。