资讯专栏INFORMATION COLUMN

PHP7错误处理机制修改

happyfish / 2510人阅读

摘要:在您的异常处理代码中,类型暗示可能需要调整下。二一些致命错误和可恢复致命错误改为抛出对象。编者按需要注册错误处理函数,请参考下面的。对于这些已经转为异常的可恢复致命错误,已经无法通过静默的忽略掉。五一些错误的级别调整了。

一、现在有两个异常类:Exception and Error.

PHP7现在有两个异常类,Exception and Error。这两个类都实现了一个新的接口:Throwable。在您的异常处理代码中,类型暗示可能需要调整下。

二、一些致命错误和可恢复致命错误改为抛出Error对象。

有一些致命错误和可恢复致命错误现在改为报出Error对象。Error对象是和Exception独立的,它们无法被常规的try/catch扑获。编者按:需要注册错误处理函数,请参考下面的RFC。

对于这些已经转为异常的可恢复致命错误,已经无法通过error handler静默的忽略掉。尤其是无法忽略类型暗示错误。

三、语法错误会抛出一个ParseError对象

语法错误会抛出一个ParseError对象,该对象继承自Error对象。之前处理eval()的时候,对于潜在可能错误的代码除了检查返回值或者error_get_last()之外,还应该捕获ParseError对象。

四、内部对象的构造方法如果失败的时候总会抛出异常

内部对象的构造方法如果失败的时候总会报出异常。之前的有一些构造方法会返回NULL或者一个无法使用的对象。

五、一些E_STRICT错误的级别调整了。

六、参考资料

https://wiki.php.net/rfc/engi...

https://wiki.php.net/rfc/thro...

https://wiki.php.net/rfc/inte...

https://wiki.php.net/rfc/recl...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22729.html

相关文章

  • PHP 7 修改了什么呢 -- 2

    摘要:风格的构造函数式构造函数,它与类的名称相同,因为它们是在所定义类的方法,现在已过时,并且将在未来被移除。如果的构造仅仅是一个类中定义构造函数,将发出。类实现构造函数方法不受影响。 PHP7 - use语句 从PHP7起,单次使用 use 语句可以用来从同一个命名空间导入类,函数和常量(而不用多次使用 use 语句)。示例 PHP7 - 错误处理 从PHP7,错误处理和报告已经改变。P...

    leeon 评论0 收藏0
  • Badoo 告诉你切换到 PHP7 节省了 100 万美元

    摘要:我们为了处理这些挑战,提出了一个新的引用测试框架当然,也是开源的,并且在整个过程中节省了上百万美元。另一方面,被证实有一些严重的缺点部署困难而且慢。在缓存刷新期间,当可用于别的进程的已缓存的文件字节码在此时损坏,就会导致崩溃。 How Badoo saved one million dollars switching to PHP7 我们成功的把我们的应用迁移到了php7上面(数百台机...

    biaoxiaoduan 评论0 收藏0
  • 项目切换PHP7.1.15

    摘要:也可以接入项目打包测试流程做代码检测。扩展替换以后废弃了和扩展,项目中使用的使用的类使用的是已经废弃的扩展使用扩展做兼容替换。测试方案和大部分公司差不多,项目组划分了线下开发环境预发布环境和生产环境三个环境。 项目由PHP5.5切换至PHP7.1.15 背景 从2015年鸟哥的技术分享,我们知道PHP7是对底层实现得一次完全重构,函数调用机制和内存管理等很多方便做了优化,使PHP性能有...

    tuniutech 评论0 收藏0
  • PHP 性能分析与实验(二)——PHP 性能的微观分析

    摘要:性能分析与实验性能的宏观分析在上一篇文章中,我们从是解释性语言动态语言和底层实现等三个方面,探讨了性能的问题。在开始分析之前,我们得掌握一些与性能分析相关的函数。二性能分析则下面我们根据小程序来验证一些常见的性能差别。 【编者按】此前,阅读过了很多关于 PHP 性能分析的文章,不过写的都是一条一条的规则,而且,这些规则并没有上下文,也没有明确的实验来体现出这些规则的优势,同时讨论的也侧...

    Airy 评论0 收藏0
  • PHP7新特性小结

    摘要:标量类型声明在中,引入了一个新的特性,即标量类型声明。弃用样式构造函数是与它们定义的类具有相同名称的方法,现在已被弃用,并且将来将被删除。 showImg(https://segmentfault.com/img/remote/1460000012438557?w=1024&h=456); 说明 PHP 7使用新的Zend Engine 3.0将应用程序性能提高近两倍,内存消耗比PHP...

    Steven 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<