这篇文章基于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 在纤程上执行无效操作