一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

PHP异常处理(Exception)什么情况下使用?

时间:2016-03-21 编辑:简简单单 来源:一聚教程网

首先看一段官方解释(异常处理),如上,其最后一句话说明解释异常与PHP错误的关联解决上。
下面来看异常与PHP错误机制各有什么优缺点?应该如何使用?
根据PHP官方说明PHP的错误机制(错误码)出现于异常之前,用于输入PHP的错误信息,从衍生性来看异常这个概念可以看成是自定义错误机制,用于弥补PHP错误机制(错误码)的不足。
这就说明了一点在信息量方便,异常, 可以包含更丰富的错误信息, 比如错误信息, 错误码, 错误的行数, 文件, 甚至出错上下文, 避免错误信息不丰富的问题
此次是性能上,对于异常处理的性能问题,这里附图说明,如下:
注: 图中有一处不严谨, 即在确定是否最后一个catch块的时候, 会同时判断(is_a), 如果是才进入最后一个catch块执行。
性能和方便, 往往是一个矛盾体,根据场景,自己来选择。
最后一个要讨论的是强迫症问题,如果所有错误都用异常,那么你会看到满屏的try{}catch{},错误很多,有自己决定怎么解决。这就是现在很多框架下会有自定义异常的扩展需求(太多可能的Uncaught Exception),我想意思可能是,交给用户自己设计。

注:使用try{}catch{}不能铺货WARNING错误,需要自己定义捕获错误的函数,例如:

set_error_handler(function () {
    throw new Exception('Ach!');
});
 
try {
    $result = 4 / 0;
} catch( Exception $e ){
    echo "Divide by zero, I don't fear you!".PHP_EOL;
    $result = 0;
}
 
restore_error_handler();

热门栏目