前言:
有错就改,错误光屏蔽是不行的,还需要对错误进行处理和记录。
内容概要:
1、顶层错误处理器的介绍
2、示例代码
一、顶层错误处理器的介绍
php在处理错误的时候,可以简单的使用exit()和die()来进行基本的处理,不过这样处理会让程序显得臃肿。
PHP中也有一个比较神奇的函数用来处理错误,set_error_handler(),这个函数可以通过设置用户自定的错误函数,来处理所有的错误。用法和set_exception_handler()是一样的,不过错误函数的写法不一样。
二、实例代码:
废话少说,上代码:
function handle($errno,$errstr,$errfile,$errline,$errcontext){
echo $errfile;
echo '<br />';
echo $errno;
echo '<br />';
echo $errstr;
echo '<br />';
echo $errline;
echo '<br />';
var_dump($errcontext);
die;
}
set_error_handler('handle');
echo 4/$a;
echo 'end';
运行结果:
/Users/haodaquan/Sites/Test/exception/index.php
8
Undefined variable: a
27
array(4) { ["_GET"]=> array(0) { } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(0) { } ["_FILES"]=> array(0) { } }
看到了吧,默认处理了除零的错误,直接就地处理,是不是特别酸爽,哦,不,应该用优雅来形容。
另外,关于php的错误处理还有用户自定义的方式,用到的不多,这里就不介绍了。
使用顶层处理器的方式来处理错误和异常,这种用法在好多PHP中都存在,大家可以看看框架源码。