课程咨询 :0351-5608878

  • 捕获机密你懂么?

    发布:PHP圈      来源:PHP圈      时间:2016-11-17

  • 捕获机密你懂么?

    公司最近一个项目使用的是PHP7,发现使用 php5里面的 Exception 类捕获不到致命错误。

    查了一下手册,PHP7的错误报告机制已改变,大多数错误被作为 Error 异常抛出

    php官网说明是

    这种 Error 异常可以像 Exception 异常一样被第一个匹配的 try / catch 块所捕获。如果没有匹配的 catch 块,则调用异常处理函数(事先通过 set_exception_handler() 注册)进行处理。 如果尚未注册异常处理函数,则按照传统方式处理:被报告为一个致命错误(Fatal Error)

    Error 类并非继承自 Exception 类,所以不能用 catch (Exception $e) { … } 来捕获 Error。你可以用 catch (Error $e) { … },或者通过注册异常处理函数( set_exception_handler())来捕获 Error

    来一段代码实例

    try {

    echo asdfasdf('1'); //未定义的函数

    } catch (Exception $e) {

    // Handle exception

    echo 'Exception';

    } catch (Error $e) { // Clearly a different type of object

    // Log error and end gracefully

    echo 'Error';

    }

    最后输出的是 Error 。。。

    所以用PHP7捕获异常防止错误的话,建议 catch :Exception Error

    好了,今天就给大家讲这么多吧,喜欢我的内容可以关注或者分享(微信公众平台:tytedu)选择太原达内培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!

上一篇:这么深的套路你懂么?

下一篇:前端与PHP之间那点儿事(一)

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:05-31

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:05-31

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:05-31

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:05-31

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:0351-5608878     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56