Grails exceptionHandler能否支持以下错误处理流
在我正在移植到grails的rails应用程序中,每当发生意外错误时,我都会自动截获错误,并向用户显示一个表单,通知他们发生了错误,并询问他们更多信息。同时,在呈现表单时,我会写入堆栈跟踪以及有关谁登录到数据库表的其他信息。然后,如果提交了表单,我会将该信息添加到错误报告中 我无法从exceptionHandler文档和引导示例中判断这是否允许我获取所有信息,包括各种会话和请求参数,然后将它们填充到数据库中,然后发布表单Grails exceptionHandler能否支持以下错误处理流,grails,error-handling,Grails,Error Handling,在我正在移植到grails的rails应用程序中,每当发生意外错误时,我都会自动截获错误,并向用户显示一个表单,通知他们发生了错误,并询问他们更多信息。同时,在呈现表单时,我会写入堆栈跟踪以及有关谁登录到数据库表的其他信息。然后,如果提交了表单,我会将该信息添加到错误报告中 我无法从exceptionHandler文档和引导示例中判断这是否允许我获取所有信息,包括各种会话和请求参数,然后将它们填充到数据库中,然后发布表单 有什么想法吗?您可以使用控制器来处理异常,而不是直接转到error.gsp
有什么想法吗?您可以使用控制器来处理异常,而不是直接转到error.gsp,方法是从
"500"(view:'/error')
到
运行“grails创建控制器错误”并添加“错误”操作:
class ErrorsController {
def error = {
def exception = request['javax.servlet.error.exception']?.cause?.cause
if (exception) {
// handle exception
}
}
}
由于您现在在控制器中,您可以访问请求等,并执行任何您喜欢的数据库或其他后期处理工作。您好,Burt,它会转到我想要的控制器,但请求中没有允许我查找原始错误的参数。这在Grails1.1.1中有效吗?对不起,这是针对1.2的。在1.2中,在执行的周围有一个额外的包装器——在1.1中,只有一个包装器。因此,删除第二个“.cause”,它将在1.1中起作用。
class ErrorsController {
def error = {
def exception = request['javax.servlet.error.exception']?.cause?.cause
if (exception) {
// handle exception
}
}
}