slim3でのException発生時のエラー画面制御
slim3ではエラーのハンドリングを各ActionクラスがhandleErrorを@Overrideすることで制御できるようだ。
とりあえず今は下記のようにしてエラーがGAE環境で発生した場合はerrorのIndexControllerに飛ばすようにしている。
ローカル環境ではExceptionの内容を画面で表示したいのでRuntimeExceptionUtil.convert(error)でそのままエラーとしている。
今後はローカル環境の場合はデベロッパー用のエラー専用画面を作成して開発をもっとよりよく容易にしたいところ。
protected boolean isLocal(){ return ServletContextLocator.get().getServerInfo().indexOf("Development") >= 0; } @Override protected Navigation handleError(Throwable error) { if (isLocal()){ throw RuntimeExceptionUtil.convert(error); } return redirect("../error"); }