概要
例外と返り値でBoolean型を返すのとどう使い分けんの?が疑問だったので、まとめることにした。
前提
そもそも例外の方針にも種類があることを知っておくことが大切らしい。
検査例外。
そもそも例外とは
外部的、または内部的な要因により、防ぎきれないエラーが発生する可能性がある
こういう箇所についてその状態になってしまった時の対処として生まれた概念である。
例外を用いるパターン
- 自分ではコントロールできない要素を持ってエラーが起こりうる場合
例えば
- DBの負荷が高くなりすぎてアクセスができない場合
- 通信ができない場合
- ブラウザ自体がうまく働いていない場合
などなど、プログラムの実装による原因だけでなく、外部的な要素も絡んでくる場合に
大体の場合は例外を用いることとなる。
内容
例外は呼び出す側が契約を履行したが、呼び出される側が契約を履行できなかった場合に、投げるもの
#java_ja より
また、もう一つ考慮すべき内容が技術的な例外とビジネスロジック的な例外である。
技術的な例外とは、ネットワーク障害、DBの接続不良などによるもの。
ビジネスロジック的な例外とは、元々の考慮になかった状態、条件などが、
メソッドの処理に入ってきた場合などがそれに当たると言える。
参考
参考にさせていただきました。ありがとうございました。
公式ドキュメント - php.net - 例外(exceptions)
SlideShare - 例外設計における大罪 - Takuto Wada さん
エラー設計についての参考 - @yodatake さん
PHPにおける例外クラスの設計考察
例外処理の指針 - @tassi-yuzukko さん
契約による設計から見た例外 - @Kokudori さん
例外 Advent Calendar 2014
PHPの例外 - @koriym さん