厦门服务器租用>业界新闻>php核心特性 - 错误处理

php核心特性 - 错误处理

发布时间:2020/4/22 14:27:10    来源: 纵横数据
错误与异常
错误,可以理解程序本身的错误,例如语法错误。而异常则更偏向于程序运行不符合预期或者不符合正常流程;对于 PHP 语言而言,处理错误和处理异常使用的机制完全不同,因此很容易让人产生困惑。
例如,我们希望通过捕获异常来处理除数为 0 的情况,但是在捕获到异常之前,PHP 就触发了错误。
try {    $a = 5 / 0;
} catch (Exception $e) {    
$e->getMessage();    
$a = -1;  // 通过异常来处理 $a 为 0 的情况,但是实际上,捕获不到该异常}
echo $a;// PHP Warning:  Division by zero
也就是说,PHP 将除数为 0 的情况当成了错误而触发,而不会自动抛出异常,因此没法捕获。类似的,在很多情况下,PHP 都没办法自动抛出异常。只能通过 if - else 语句判断再结合 throw 方法来并手动抛出异常。
上述情况的发生,主要还是因为异常机制是 PHP 向面向对象演进后得到的产物。而在此之前 PHP 的报错主要还是通过错误机制,因此,在很多情况下,PHP 的错误要比异常更有价值。不过 PHP7 开始统一这两者,使错误也可以像异常那样抛出(这部分内容将放在异常部分讲解)。

错误级别
PHP 中的错误可理解为 使脚本不运行不正常的情况,根据错误级别从高到低可划分为五类
Parse error 或 Syntax Error - 语法解析错误,触发该错误后,脚本完全无法运行;
Fatal Error - 致命错误,触发该错误后,后面的脚本无法继续执行;
Warning Error - 出现比较不恰当的地方,脚本可继续执行;
Notice Error - 出现不恰当的地方,但是程度比 Warning Error 低,脚本可继续执行;
Deprecated Error - 不推荐这么使用,未来可能会废弃,脚本可继续执行;
默认情况下,PHP 触发错误,并显示错误的级别及对应的提示。
在线客服
微信公众号
免费拨打400-1886560
免费拨打0592-5580190 免费拨打 400-1886560 或 0592-5580190
返回顶部
返回头部 返回顶部