No.112


【CakePHP】Exception発生時の状況確認

Exception発生時に何が起きたのかわからない

 CakePHPに限ったことではないが、フレームワークはPHPの素の挙動をフックしていろいろ処理しているので、実際に何が起きているのかが非常に分かりづらい。

 よく使っているCakePHPは何でもExceptionにしたがるので、Exceptionがあるたびに

echo $e->getMessage();

 で原因を出力してやり、そのメッセージから読み解いていくしかない。

 しかも、このメッセージが実に不親切で、せっかくフレームワークを使っているというのにエラーメッセージしか出力せず、関連情報は表示してくれないのだ。

 そこから原因を探る方法はケースバイケースなのだけど、一番自分が引っかかるデータベースへのSQLに関しては以下で確認ができる。(PDOException発生)

echo $e->queryString;

 PDOExceptionが発生しているということはクエリが実行されていないので、以前紹介した方法ではクエリの確認ができないことに注意。