在 PHP 7 的文档中,我注意到两个预定义的异常,Error
和 ErrorException
几乎完全相同,ErrorException
具有额外的 $severity
属性和 Error
仅在 PHP 7 中引入,而 ErrorException
从 PHP 5.1 开始就存在。
据我所知,Error
是我应该用来捕获所有内部 PHP 错误(例如类型错误)的异常,但我不明白 的目的是什么ErrorException
异常。它们各自的用途是什么,我应该将我的自定义异常基于它们中的任何一个,还是应该坚持使用通常的 Exception
?
最佳答案
您可以从这个 page which describes errors in php 中捕获 Error
类的用途
PHP 7 changes how most errors are reported by PHP. Instead of reporting errors through the traditional error reporting mechanism used by PHP 5, most errors are now reported by throwing Error exceptions.
自身的相同描述Error
页:
Error is the base class for all internal PHP errors.
所以您不应该将此类用于您的用户定义的异常。
目的ErrorException
你可以从这个good SO question/answers :
ErrorException is mostly used to convert php error (raised by error_reporting) to Exception
但是在 php7 中你不需要将 php error 转换为 Exception。
所以你基本上应该扩展简单的 Exception
或者你可以在标准情况下使用这些预定义的 SPL Exceptions 集(例如 InvalidArgumentException
、OutOfBoundsException
、BadFunctionCallException
、...)
关于php - PHP 7 中 Error 和 ErrorException 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36323571/