🐘

PHP 組み込み Exception / Error クラス一覧

に公開

PHP の例外・エラー体系まとめ

PHP では、すべての例外およびエラーは Throwable インターフェースを実装しており、try/catch 構文でキャッチ可能です。

🔰 Throwable とは?

Throwable は PHP 7 以降で導入されたインターフェースで、すべての例外 (Exception) やエラー (Error) の共通の親です。

try {
    // 例外やエラーが発生する可能性のある処理
} catch (Throwable $t) {
    echo "何かしらの例外またはエラー: " . $t->getMessage();
}

📦 Exception 系

主に開発者が投げる(throw する)ことを想定した例外です。

クラス名 説明
BadFunctionCallException コールしようとした関数が存在しない、または不正な方法で呼び出された場合
BadMethodCallException コールしようとしたメソッドが存在しない、または不正な方法で呼び出された場合
Exception すべての例外の基底クラス
ErrorException 通常の PHP エラーを例外として扱う
InvalidArgumentException 無効な引数が渡された場合
LengthException 長さに関連する問題(配列・文字列など)
OutOfRangeException 範囲外アクセス(存在しないインデックスなど)
RuntimeException 実行時の一般的な例外
OutOfBoundsException 範囲外のプロパティ・キーアクセス
UnexpectedValueException 想定外の値が渡された場合
DomainException ドメインルール違反
UnderflowException データ構造が空なのに要素を取り出そうとした
OverflowException 容量を超えてデータ構造に追加しようとした
LogicException ロジック的にあり得ない操作

参考

⚠️ Error 系

実行時の致命的なエラーなど、従来はキャッチできなかったエラーをオブジェクト化したものです。

クラス名 説明
Error すべてのエラーの基底クラス
TypeError 型の不一致が発生した場合
ParseError パース(構文)エラー
ArithmeticError 数学的なエラー
DivisionByZeroError ゼロ除算エラー(ArithmeticError のサブクラス)
AssertionError assert() の失敗時にスローされるエラー

参考

Discussion