🐘
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 |
ロジック的にあり得ない操作 |
参考
- https://www.php.net/manual/ja/spl.exceptions.php
- https://github.com/php/php-src/blob/master/ext/spl/spl_exceptions.c
⚠️ Error 系
実行時の致命的なエラーなど、従来はキャッチできなかったエラーをオブジェクト化したものです。
クラス名 | 説明 |
---|---|
Error |
すべてのエラーの基底クラス |
TypeError |
型の不一致が発生した場合 |
ParseError |
パース(構文)エラー |
ArithmeticError |
数学的なエラー |
DivisionByZeroError |
ゼロ除算エラー(ArithmeticError のサブクラス) |
AssertionError |
assert() の失敗時にスローされるエラー |
Discussion