【问题标题】:Difference between Error and ErrorException in PHP 7PHP 7 中 Error 和 ErrorException 的区别
【发布时间】:2023-03-27 00:51:01
【问题描述】:

在 PHP 7 的文档中,我注意到两个预定义的异常 ErrorErrorException 几乎完全相同,ErrorException 具有额外的 $severity 属性,而 Error 仅在 PHP 中引入7 而ErrorException 自 PHP 5.1 以来就已存在。

据我了解,Error 是我应该用来捕获所有内部 PHP 错误(例如类型错误)的异常,但我不明白 ErrorException 异常的目的是什么。它们每个都有什么用,我应该基于它们中的任何一个来自定义异常,还是应该坚持使用通常的Exception

【问题讨论】:

    标签: php exception error-handling php-7


    【解决方案1】:

    您可以从这个page which describes errors in php 中了解Error 类的目的

    PHP 7 改变了 PHP 报告大多数错误的方式。代替 通过传统的错误报告机制报告错误 由 PHP 5 使用,现在大多数错误都是通过抛出错误来报告的 例外。

    同样的描述在自己的Error页面上:

    Error 是所有内部 PHP 错误的基类。

    因此,您不应将此类用于用户定义的异常。

    ErrorException的用途可以从这个good SO question/answers得到:

    ErrorException 主要用于转换 php 错误(由 error_reporting) 到异常

    但是在php7中你不需要将php错误转换为异常。

    所以您基本上应该扩展简单的Exception,或者您可以将这些预定义的SPL Exceptions 集合用于标准情况(例如InvalidArgumentExceptionOutOfBoundsExceptionBadFunctionCallException,...)

    【讨论】:

    • This官方php文档对我理解这一点也很有帮助,尤其是页面底部定义的层次结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2011-02-17
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 2016-03-02
    相关资源
    最近更新 更多