PHPの例外クラスについて今まで一方的にExceptionで受けており、それ自体は問題なさそうですが、
一応再度確認。
エラークラスの分類
Throwableに関して
上にあるように、Throwableが全ての上位クラスで、その下にErrorとExceptionがあり、try{}catch(Throwable )・・・のようなコードを書くとErrorクラスをキャッチしてしまうが、Errorクラスに関しては
- エラーの範囲が広く、抽象的になる
- 開発時点で潰しているべきエラー
といった意見もあり、try〜catchに関してはExceptionを使うことが一般的。
ただ、あえてそういったエラーも拾うのが意図ならcatchするのもありかも・・・・
Exceptionsに関して
できればこれを継承して独自の例外クラスを作り、throwした方がベター。
Exceptionsクラスをより具体化し、原因の判別をより迅速に行うため。
参考リンク
お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか?