PHP-Z

php

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

2016-9-4 00:57 发布者: 大熊猫

异常处理虽然说使用简单但是我们应该在哪些情况下使用异常处理呢,今天小编就来为各位介绍关于php异常处理的使用方法了,具体的操作细节如下所示.

首先看一段官方解释(异常处理),如上,其最后一句话说明解释异常与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;  
}  //phpfensi.com 
   
restore_error_handler(); 


关注微信公众号

top100summit

扫一扫关注微信公众号

PHP-Z_COM