読者です 読者をやめる 読者になる 読者になる

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");
    }