在Grails中example with custom exception handling后,我看到了以下代码:
exceptionHandler.exceptionMappings = [
'my.project.AccessDeniedException': '/accessDenied',
'my.project.NoSessionException' : '/accessDenied',
'java.lang.Exception': '/errorProduction'
]
这适用于前两种类型的异常,但所有其他异常,如GroovyPagesException,不再由Grails处理,它们由servlet容器处理。
如何使用Grails(1.3)处理所有异常?
答案 0 :(得分:7)
这有效:
UrlMappings.groovy:
"500"(controller: 'errors', action: 'handle')
控制器:
class ErrorsController {
def handle = {
def exception = request.exception.cause.class
if(exception == my.project.NoSessionException ||
exception == my.project.AccessDeniedException)
render(view: '/accessDenied')
else
render(view: '/errorProduction')
}
}
答案 1 :(得分:1)
您是否想要针对此类错误显示500错误页面?我使用了UrlMappings配置来覆盖自定义页面的某些错误。
"500"(controller: "error", action: "cartGone", exception: CartGoneException)
好奇这里的要求是什么?