PHP异常和错误(6)PHP如何优雅的处理错误

2017-03-22 07:16:57 admin ...

前言:

有错就改,错误光屏蔽是不行的,还需要对错误进行处理和记录。

内容概要:

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中都存在,大家可以看看框架源码。

相似文章