如何在Grails控制器之间传递错误消息?

raf*_*ian 5 error-handling grails groovy controller

我试图将一个错误消息从grails控制器传递给grails错误控制器,以便在HTTP响应中显示错误消息,但我不确定哪个参数在错误控制器中保存错误消息.

URLMappings.groovy

所有500个错误都映射到ErrorsController

"500"(controller: "errors", action: "serverError")
Run Code Online (Sandbox Code Playgroud)

GenericController

def {
  try{
    //do some work
  }catch(Exception e){
    response.sendError(500, e.getMessage())
  }
}
Run Code Online (Sandbox Code Playgroud)

ErrorsController

def serverError = {

  render( how can I access the exception details here?? )

}
Run Code Online (Sandbox Code Playgroud)

我需要在ErrorsController中访问异常,以便将其输出到HTTP响应.

ata*_*lor 8

在控制器之间传递短信息消息的常用方法是将其放在闪存范围内.例如:

def myAction = {
    try {
        ...
    } catch (Exception e) {
        flash.message = e.message
        response.sendError(500)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在这种特殊情况下,为什么要捕获异常?如果您让异常失败,grails将自动生成服务器错误并调用"500"映射.在您的错误控制器中,该异常将作为request.exception.