每当出现意外错误时,我都会将其移植到grails的rails应用程序中,我会自动拦截该错误并向用户显示一个表单,通知他们发生了错误并要求他们提供更多信息。同时,在呈现表单时,我写了堆栈跟踪以及有关谁登录数据库表的其他信息。然后,如果提交了表单,则将该信息添加到错误报告中。
我无法从exceptionHandler文档和BootStrap示例中看出,是否可以让我获取所有信息,包括各种 session 和请求参数,然后将它们填充到数据库中,然后发布表单。
有什么想法吗?
最佳答案
您可以使用 Controller 来处理异常,而不是直接通过更改grails-app/conf/UrlMappings.groovy中的“500”代码映射直接进入error.gsp
"500"(view:'/error')
至
"500"(controller: 'errors', action: 'error')
运行'grails create-controller errors'并添加'error'操作:
class ErrorsController {
def error = {
def exception = request['javax.servlet.error.exception']?.cause?.cause
if (exception) {
// handle exception
}
}
}
由于您现在在 Controller 中,因此您可以访问请求等,并执行您喜欢的任何数据库或其他后处理工作。
关于grails - Grails exceptionHandler是否可以支持以下错误处理流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2021429/