php核心特性 - 错误处理

错误与异常错误,可以理解程序本身的错误,例如语法错误。而异常则更偏向于程序运行不符合预期或者不符合正常流程;对于 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 触发错误,并显示错误的级别及对应的提示。
海外服务器
标签 服务器对比

更多资讯