PHP错误与异常

91 阅读1分钟

PHP异常继承树.png

这篇文章基于PHP7

从PHP7起,PHP对异常做了较大改变,引入了Error,调整了继承结构

Stringable 这是个interface,只要能转字符串的类都应该实现这个接口

Throwable 能被throw抛出的最基本的接口,但是PHP不允许直接实现这个接口

Exception 所有用户级异常的基类,想要自定义异常就可以继承这个

LogicException 代码逻辑错误,就是代码写的不对

BadFunctionCallException 如果回调函数未定义或缺少参数的时候,抛出这个异常

BadMethodCallException 如果回调方法未定义或缺少参数的时候,抛出这个异常

DomainException 如果一个值不在有效的值列表中,则抛出这个异常

InvalidArgumentException 参数无效

LengthException 长度无效

OutOfRangeException 下标越界

RuntimeException 运行时异常

OutOfBoundsException 无效key,在编译阶段未检测出来的

OverflowException 溢出

RangeException 执行期间的范围异常,相当于编译期间的DomainException

UnderflowException 空对象上的无效操作,eg: 删除元素

UnexpectedValueException 值不在可接受集合

ErrorException 错误异常

Error 内部错误的基类

TypeError 类型不匹配

ArgumentCountError 参数数量不匹配

ArithmeticError 数学运算错误

DivisionByZeroError 除零错误

AssertionError 断言失败错误

CompileError 编译错误

ParseError 解析PHP代码错误

ValueError 传值错误

UnhandledMatchError match未被匹配到任何分支

FiberError 在纤程上执行无效操作