- サーバーエラー時は、コントローラーに飛ばすようにする
- コントローラーに例外別の処理を書く
- エラーページを用意する
conf/UrlMappings.groovy に以下があると エラー時は ExceptionController が処理するようになる。
500 は、HTTP のステータスコード
1 2 3 |
"500"(controller: 'Exception') |
/controllers/ExceptionController.groovy を以下のようにする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class ExceptionController { def index() { def exception = request.exception.cause if(exception instanceof SQLException) { // Show sqlError.gsp render(view: "/sqlError", model: [exception: exception]) return } render(view: "/error", model: [exception: exception]) } } |
上記の例だと、 SQLException 例外時用に sqlError.gsp と、それ以外ように、 error.gsp を用意する
ControllerやServiceに Exception を Catchするような処理を記述しない場合は
500 エラーに勝手になる という事でしょうか?
そのとおりです。
Grails 2.3.4 で確認してます。