这一次学习php的错误处理和异常处理
主要介绍常见的错误和异常
常见错误
1.拼写错误
PHP中的常量和变量都是区别大小写得。
PHP中的函数,方法名,类名不区分大小写,但是建议使用与定义相同的名字
魔术常量建议全部大写,包括 LINE,FILE,DIR,FUNCTION,CLASS,METHOD,NAMESPACE_
2.等号与赋值符号混淆
上一次说了PHP有三个符号,"=","==","==="。第一个是赋值符号,第二个是判断左右两边的值是否相等,第三个是判断左右两边的值是否相等且类型也是否相等。
3.缺少美元符号
在PHP中,设置变量时需要使用美元符号"$",如果不添加美元符号就会引起解析错误。
错误处理
php.ini中的错误处理机制
display_errors 默认值是on :设置错误作物php的一部分输出。开发过程可以采用默认的设置。但是为了安全考虑,在生产环境中还是设置off比较好
error_reporting 默认值是E_All :这个设置会显示所有的错误信息。这种设置会让一些无害的提示也显示。
所以可以设置error_reporting的默认值为error_reporting=E_ALL&~E_NOTICE,这样子只会显示错误和不良代码
error_log 默认值是null:设置记录错误日志的文件。默认情况下将错误发送到web服务器日志,用户也可以指定的写入文件。
html_errors 默认值为on:控制是否在错误信息中采用html格式
log_errors 默认值为off:控制是否应该将错误发送到主机服务器的日志文件
display_startop_errors默认值为off:控制是否显示php启动时的错误
track_errors 默认值为off:设置是否保存一个警告或错误信息
自定义错误和错误触发器
错误的级别值和含义
数值为2,常量为E_WARNING,非致命的run-time错误,不暂停脚本运行
数值为8,常量为E_NOTICE,run-time通知,脚本发现可能有错误发送,但也可能在脚本运行正常时发生
数值为256,常量为E_USER_ERROR,致命的用户生成的错误
数值为512,常量为E_USER_WARNING,非致命的用户生成的警告
数值为1024,常量为E_USER_NOTICE,用户生成通知
数值为4096,常量为E_RECOVERABLE_ERROR,可捕获的致命 错误
数值为8191,常量为E_ALL,所有的错误和警告
function customeError($errno,$errstr)
{
echo "<b>错误:</b> [$errno] $errstr";
echo "终止程序";
die();
}
set_error_handler("customeError");
echo ($test);
$test=5;
if($test>4)
{
//创建自定义错误信息
trigger_error("123",E_USER_WARNING);
}
//错误记录,并发送到指定邮箱
function customeError($errno,$errstr)
{
echo "<b>错误:</b> [$errno] $errstr";
echo "错误信息已经发送";
error_log("错误:[$errno] $errstr",1,"someone@qq.com","from 123@qq.com");
}
set_error_handler("customeError",E_USER_WARNING);