PHPでオブジェクティブ指向に基づいたコーディングを行う際に、クラスを例外ベースで書くか、エラーベースで書くか、私は良く悩んでいます。 というのも、PHPにデフォルトで導入されている関数の多くはPHP4の時代から存在しており、ほとんどがエラーベースになっているため、他のPHPプログラマが読んだ時に理解しやすいのです。 エラーベースのプログラムの方がコードが簡潔になることや、PHPにはFinallyブロックが存在しないことも、考えるべき点の一つです。また、オブジェクティブ指向のメリットとして挙げられるクラス単位でのコードの再利用もネックになります。例外ベースで書かれたクラスは、どのようなケースでどのような例外が投げられるのかを網羅したドキュメントを必要とします。 ここでは、「ソースコードだけで全てが理解できる」ことを前提に、PHPで例外ベースのクラスを作る時に気をつけることを書いてみたいと思