太原PHP培训
达内太原php培训中心

0351-5608878

热门课程

捕获机密你懂么?

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

捕获机密你懂么?

公司最近一个项目使用的是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 开发框架 CakePHP 3.6.1 发布,改进 API 文档

Framework7 2.2.1 发布,全功能 HTML 框架

CKEditor 4.9.2 发布,可视化 HTML 编辑器

Rough.js — 基于 Canvas 轻量级的手绘风格图形库

选择城市和中心
贵州省

广西省

海南省