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