创新互联建站专注于网站建设|成都网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都食品包装袋等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身定制品质网站。
这种 Error 异常可以像 Exception 异常一样被第一个匹配的 try catch 语句块所捕获。如果没有匹配的 catch 语句块,则调用异常处理函数(事先通过 set_exception_handler() 注册)进行处理。如果尚未注册异常处理函数,则报告为一个致命错误(Fatal Error)。
注意:Error 类并非继承自 Exception 类,所以不能用 catch (Exception $e) { ... }
来捕获 Error。可以用 catch (Error $e) {...}
,或者通过注册异常处理函数 set_exception_handler() 来捕获 Error。
【示例】如下代码自动捕获一个致命错误。
getMessage().'
Error 发生的行号:'.$e->getLine(); } ?>
运行结果如下:
Error 的信息:Class 'cat' not found
Error 发生的行号:3
在 PHP7 中实现了一个全局的所有可以通过 throw 语句抛出的异常的 throwable 基础接口,原有的 Exception 和新增的部分 Error 都实现了这个接口,以接口的方式定义了异常的继承结构,也明确了Exception 和各种 Error 都可以被当做一种可抛出的异常来处理。
要知道的是目前 PHP7 中并不是所有的错误均实现了 throwable 接口或继承至 PHP7 新增的 Error 类,原先 PHP5 中的一些错误特别是一些 E_PARSE、E_ERROR 级别的致命错误在 PHP7 中变为了可捕获的 throwable(Exception 对象或子对象和 Error 对象或子对象),如果不进行捕获则为一个错误,如果捕获就变为一个可在程序内处理的异常(throwable)。
基于上述分析可以这样理解:PHP7 中的异常所表示的范围相对于 PHP5 更为宽泛了,既包含了 PHP5 中的 Exception,又新增了 PHP7 才加入的 Error,而 Exception 和 Error 又都是实现了 throwable 接口,所以 PHP7 之后谈到异常首先应该想到的是 throwable 而不是 Exception。
throwable 接口的层次结构如下所示:
Throwable
├─ Error
│ ├─ ArithmeticError
│ │ └─ DivisionByZeroError
│ ├─ AssertionError
│ ├─ CompileError
│ │ └─ ParseError
│ └─ TypeError
│ └─ ArgumentCountError
└─ Exception
└─ ...(各种 Exception 的子类)
当前标题:PHP7中的错误处理
文章转载:http://www.mswzjz.com/qtweb/news16/161766.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联