2010-02-28 120 views

回答

0

您能否提供一些示例代码,其中引发了一些RuntimeException? 如果你没有告诉你确切的问题是什么,很难正确回答你的问题。

至于我可以从这个角度告诉你,你应该BootStrap.groovy中看起来是这样的:

class BootStrap { 
def exceptionHandler 

def init = { servletContext -> 

    exceptionHandler.exceptionMappings = 
     [ 'NoSuchFlowExecutionException' :'/my/doIt', 
     'java.lang.Exception' : '/error', 
     'org.you.YourCustomException' : '/yourErrorController/yourErrorAction' ] 
} 

def destroy = { } 

在另一边,在你的代码,你必须赶上发生的历史RuntimeExceptions和transate他们进入您的自定义例外。

在这里,我们有一个有趣的观点:你为什么想要这样做? 当RuntimeExceptions被抛出时重定向会不会更舒服?

+0

好吧,我有模板中的类似问题,我有一个标记,这个标记抛出异常,并以某种方式它不呈现错误控制器操作(定义在URL映射500)。相反,它呈现到错误,然后打印出我创建的错误控制器的输出。如果网站上有错误,您不希望抓取工具捕获重定向,然后500,那么重定向是不正确的。您应该给他们对应的5xx代码,我猜。如何清理输出缓冲区并将其全部替换为错误处理控制器操作的输出? – Art79 2010-09-24 13:19:08

+0

我认为这个问题最好确保你的taglib不会抛出任何异常 - 进一步说,如果是这样,你为什么要呈现一个完整页面的HTTP错误而不是一个自定义的错误消息taglib?你能提供任何taglib代码吗? – codeporn 2010-10-04 08:43:33