Chr*_*ris 50 php exception-handling exception class
我还没有找到PHP中所有内置Exception子类的列表.在创建自己的异常子类之前,我宁愿在有意义的时候使用内置的.
例如,我知道存在InvalidArgumentException,但似乎没有任何可与Java的NullPointerException相媲美的东西.
有没有人或可以链接到PHP中可用的Exception子类列表?
Joh*_*nde 103
PHP 5有两个内置的异常
DOMException 回调是指未定义的函数,或者是否缺少某些参数.IntlException 回调是指未定义的方法,或者是否缺少某些参数.PharException 值不符合定义的有效数据域.ReflectionException 传递的论据无效.BadFunctionCallException 参数超出允许的长度(用于字符串,数组,文件大小等).BadMethodCallException 程序逻辑中出现一般错误.DomainException 要求提供非法索引.InvalidArgumentException要求提供非法索引.这表示应该在编译时检测到的错误.LengthException 将元素添加到完整容器.LogicException在程序执行期间指示范围错误.通常这意味着除了/溢出之外还有一个算术错误.OutOfBoundsException 只能在运行时发现的错误.OutOfRangeException 对空容器执行无效操作,例如删除元素.OverflowException 收到意外的值(即,作为方法调用的返回值的结果).PHP 7引入了新的异常,包括可捕获的错误.新的例外包括:
RangeException 是可以通过PHP 7中的throw语句抛出的任何对象的基本接口,包括错误和异常.RuntimeException 是所有内部PHP错误的基类.UnderflowException 当通过assert()进行的断言失败时抛出.UnexpectedValueException 在解析PHP代码时发生错误时抛出,例如调用eval()时.Throwable有三种情况可能会抛出TypeError.第一个是传递给函数的参数类型与其对应的声明参数类型不匹配的位置.第二个是函数返回的值与声明的函数返回类型不匹配.第三种是将无效数量的参数传递给内置PHP函数(仅限严格模式).Error在执行数学运算时发生错误时抛出.在PHP 7.0中,这些错误包括尝试以负数执行bitshift,以及对intdiv()的任何调用将导致超出整数可能边界的值.AssertionError 当尝试将数字除以零时抛出.ParseError 当将太少的参数传递给用户定义的函数或方法时抛出.PHP 7.3引入了JSON异常:
TypeError被抛出时,ArithmeticError并DivisionByZeroError遇到一个错误.这是一个演示PHP 7中引入的新层次结构的图表:
\Throwable
??? \Exception (implements \Throwable)
| |?? \DOMException (extends \Exception)
| ??? \IntlException (extends \Exception)
| ??? \JsonException (extends \Exception)
| |?? \PharException (extends \Exception)
| |?? \ReflectionException (extends \Exception)
? ??? \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)
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 19
实际上,我找到了他们,因为我崩溃了并且问道.
从技术上讲,PHP看起来只有2个内置异常:http: //www.php.net/manual/en/reserved.exceptions.php
SPL定义了更多:http: //www.php.net/manual/en/spl.exceptions.php
解释他们的heirarchy:http://www.php.net/~helly/php/ext/spl/classException.html
更新
上面的链接已经死了,它是基本PHP异常层次结构的图表.我找不到原版,但这里有一个替代品:

最初发现于http://fossies.org/dox/php-5.2.17/classException.html
| 归档时间: |
|
| 查看次数: |
13513 次 |
| 最近记录: |