Slim3でのエラーハンドリング② | sola's note

sola's note

日ごろのメモを書いていきます。何か新しいものを作るために。

前回Slim3でのエラーハンドリングについて書きましたが、
前回書いた内容だと、エラー時にエラーを表示せずに、特定の画面を表示することはできるものの
エラーの内容がサッパリになってしまいます。

エラーの内容も知るべきだねという時に
スタックトレースを文字列でLogに出力します。

private final static Logger LOG = Logger.getLogger(Hoge.class.getName());

protected Navigation handleError(Throwable error) {
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    error.printStackTrace(pw);

    LOG.log(Level.WARNING,sw.toString());

    return redirect("/error.jsp");
}

とりあえずこんな感じで出力出来ます。
上記だと出力レベルはERRORではなくWARNINGなのでお気を付けを。

ちなみにLOGに設定されているclass名がHogeなので、
使用する場合は実際のclass名に応じて変えて下さい。