SPLの例外

クラス階層図

PHP7 or above

クラス階層図(PHP7)

PHP5 or lower

クラス階層図(PHP5)

クラス概要

例外
class 名前 extends implements 概要
interface Throwable     [PHP7+] Throwable は、PHP 7 の throw 文でスロー可能なあらゆるオブジェクトが実装する基底インターフェイスです。 Error や Exception も、これを実装しています。
class Error   Throwable [PHP7+] Error は、PHP のすべての内部エラーの基底クラスです。
class ArithmeticError Error   [PHP7+] ArithmeticError は、数学的な操作でエラーが発生した場合にスローされます。 PHP 7.0 では、たとえばマイナスのビットシフトを行おうとした場合などに発生します。 また、結果が integer の範囲をこえてしまうのうな intdiv() の呼び出しの際にも発生します。
class AssertionError Error   [PHP7+] AssertionError は、assert() によるアサーションが失敗したときにスローされます。
class DivisionByZeroError ArithmeticError   [PHP7+] DivisionByZeroError は、数値をゼロで割ろうとした場合にスローされます。
class ParseError Error   [PHP7+] ParseError は、eval() を呼んだときなどの PHP コードのパースに失敗した場合にスローされます。
class TypeError Error   [PHP7+] TypeError がスローされるのは、以下の三つの場合です。 まず、関数に渡された引数の型が、関数の宣言時に指定された型と一致しない場合。 次に、関数の戻り値の型が、関数の宣言時に指定された型と一致しない場合。 そして、PHP 組み込みの関数に渡す引数の数を間違えた場合 (これは、strict モードの場合に限ります)。
class Exception   Throwable Exception は、PHP 5 ではすべての例外の基底クラスです。 PHP 7 では、すべてのユーザー例外の基底クラスで Throwable インターフェイスを実装しています。
class ErrorException Exception   エラー例外です。
class LogicException Exception   プログラムのロジック内でのエラーを表す例外です。 この類の例外が出た場合は、自分が書いたコードを修正すべきです。
class BadFunctionCallException LogicException   未定義の関数をコールバックが参照したり、引数を指定しなかったりした場合にスローされる例外です。
class BadMethodCallException BadFunctionCallException   未定義のメソッドをコールバックが参照したり、引数を指定しなかったりした場合にスローされる例外です。
class DomainException LogicException   定義したデータドメインに値が従わないときにスローされる例外です。
class InvalidArgumentException LogicException   引数の型が期待する型と一致しなかった場合にスローされる例外です。
class LengthException LogicException   長さが無効な場合にスローされる例外です。
class OutOfRangeException LogicException   無効なインデックスを要求した場合にスローされる例外です。 これは、コンパイル時に検出しなければなりません。
class RuntimeException Exception   実行時にだけ発生するようなエラーの際にスローされます。
class OutOfBoundsException RuntimeException   値が有効なキーでなかった場合にスローされる例外です。 これは、コンパイル時には検出できないエラーです。
class OverflowException RuntimeException   いっぱいになっているコンテナに要素を追加した場合にスローされる例外です。
class RangeException RuntimeException   プログラムの実行時に範囲エラーが発生したことを示すときにスローされる例外です。 通常は、アンダーフローやオーバーフロー以外の計算エラーが発生したことを意味します。 これは、実行時版の DomainException です。
class UnderflowException RuntimeException   空のコンテナ上で無効な操作 (要素の削除など) を試みたときにスローされる例外です。
class UnexpectedValueException RuntimeException   いくつかの値のセットに一致しない値であった際にスローされる例外です。 これが発生する例としては、ある関数が別の関数をコールしていて、 その関数の返り値が特定の型や値である (そして計算やバッファ関連のエラーがない) ことを想定している場合があります。