php exception 内置,什么exception子类内置到PHP中?

PHP7引入了新的异常处理机制,包括可捕获的错误和新的Exception类型。这些新类型如Error、AssertionError、ParseError和TypeError,旨在更好地区分和处理编程错误。TypeError尤其关注参数类型匹配和返回值类型。此外,异常层次结构也得到扩展,为逻辑错误、运行时错误和范围错误提供了更具体的分类。这一改变提高了代码的健壮性和调试效率。
摘要由CSDN通过智能技术生成

PHP 5有两个内置的例外

Exception

ErrorException

SPL包括一些自己的内置例外 :

BadFunctionCallExceptioncallback指的是一个未定义的函数,或者缺less一些参数。

BadMethodCallExceptioncallback指的是一个未定义的方法,或者是缺less一些参数。

DomainException值不符合已定义的有效数据域。

InvalidArgumentException传递的参数无效。

LengthException参数超出允许的长度(用于string,数组,文件大小等)。

LogicException程序逻辑中发生一般错误。

OutOfBoundsException请求了非法索引。

OutOfRangeException请求了非法索引。 这表示应在编译时检测到的错误。

OverflowException将元素添加到完整的容器。

RangeException在程序执行期间指示范围错误。 通常这意味着除了溢出/溢出之外,还有一个算术错误。

RuntimeException发生只能在运行时发现的错误。

UnderflowException在空容器上执行无效操作,例如删除元素。

UnexpectedValueException收到意外的值(即作为方法调用的返回值的结果)。

PHP 7引入了新的exception,包括可捕获的错误。 新的例外包括:

Throwable是可以通过PHP 7中的throw语句引发的任何对象的基本接口,包括Error和Exception。

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

当通过assert()断言失败时, AssertionError被抛出。

在parsingPHP代码时发生错误时会引发ParseError ,例如调用eval()时。

TypeError有三种情况可能会引发TypeError。 首先是传递给函数的参数types与其相应的声明参数types不匹配。 第二个是从函数返回的值与声明的函数返回types不匹配。 第三个是无效数量的parameter passing给一个内置的PHP函数(仅限严格模式)。

在执行math运算时发生错误时,会引发ArithmeticError 。 在PHP 7.0中,这些错误包括尝试执行一个负数的负移位,以及对intdiv()的任何调用,这会导致整数的可能范围之外的值。

如果尝试将数字除以零,则会引发DivisionByZeroError 。

当太less的parameter passing给用户定义的函数或方法时,会引发ArgumentCountError 。

下面的图表演示了PHP 7中引入的新层次结构:

\Throwable ├── \Exception (implements \Throwable) │ ├── \LogicException (extends \Exception) │ │ ├── \BadFunctionCallException (extends \LogicException) │ │ │ └── \BadMethodCallException (extends \BadFunctionCallException) │ │ ├── \DomainException (extends \LogicException) │ │ ├── \InvalidArgumentException (extends \LogicException) │ │ ├── \LengthException (extends \LogicException) │ │ └── \OutOfRangeException (extends \LogicException) │ └── \RuntimeException (extends \Exception) │ ├── \OutOfBoundsException (extends \RuntimeException) │ ├── \OverflowException (extends \RuntimeException) │ ├── \RangeException (extends \RuntimeException) │ ├── \UnderflowException (extends \RuntimeException) │ └── \UnexpectedValueException (extends \RuntimeException) └── \Error (implements \Throwable) ├── \AssertionError (extends \Error) ├── \ParseError (extends \Error) └── \TypeError (extends \Error) └── \ArgumentCountError (extends \TypeError) └── \ArithmeticError (extends \Error) └── \DivisionByZeroError extends \ArithmeticError)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值