- サーバーエラー時は、コントローラーに飛ばすようにする
conf/UrlMappings.groovy に以下があると エラー時は ExceptionController が処理するようになる。
500 は、HTTP のステータスコード
|
"500"(controller: 'Exception') |
- コントローラーに例外別の処理を書く
/controllers/ExceptionController.groovy を以下のようにする
|
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 で確認してます。