もちろん、PHPでは、スローされたすべての例外をキャッチできます:
try{
/* code with exceptions */
}catch(Exception $e) {
/* Handling exceptions */
}
しかし、catchブロック内からスローされた例外の例外タイプをチェックする方法はありますか?
try {
throw new InvalidArgumentException("Non Sequitur!", 1);
} catch (Exception $e) {
echo get_class($e);
}
複数のcatch
ブロックを使用して、異なる例外タイプをキャッチできます。下記参照:
try {
/* code with exceptions */
} catch (MyFirstCustomException $e) {
// We know it is a MyFirstCustomException
} catch (MySecondCustomException $e) {
// We know it is a MySecondCustomException
} catch (Exception $e) {
// If it is neither of the above, we can catch all remaining exceptions.
}
例外がcatch
ステートメントによってキャッチされると、次のcatch
ステートメントは、たとえ例外に一致したとしてもトリガーされないことを知っておく必要があります。
get_class
メソッドを使用して、例外を含むオブジェクトの完全なクラス名を取得することもできます。