Grails自定义ErrorController捕获异常,但属性request.exception为null

时间:2013-11-07 10:59:25

标签: grails groovy grails-controller

我的申请适用于Grails 2.3.1。前几天我注意到错误控制器的奇怪行为。 Grails调用错误控制器但request.exception为null。似乎这发生在应用程序从Grails 2.2.x更新到2.3.x并且我们开始使用异步控制器之后。 我的控制器:

package grailsapp

import static grails.async.Promises.task

class MyController {
    def controllerAction(ActionCommand command) {
        task {
            // Controller code
        }
    }
}

此外,仅当控制器代码包含困难的计算时才会发生,这需要很长时间(约30秒)。

我尝试运行没有grails async的代码,它完美无缺。 还尝试使用try \ catch在任务中包装代码 - 没有任何改变,catch部分没有捕获任何内容。

package grailsapp

import static grails.async.Promises.task

class MyController {
    def controllerAction(ActionCommand command) {
        task {
            try{
                // Controller code              
            } catch (Exception e){
                e.printStackTrace()
                // Nothing caught here
            }
        }
    }
}

尝试包裹整个动作方法体 - 同样的结果。

package grailsapp

import static grails.async.Promises.task

class MyController {
    def controllerAction(ActionCommand command) {
        try{
            task {
                // Controller code
            }               
        } catch (Exception e){
            e.printStackTrace()
            // Nothing caught here
        }
    }
}

有人可以帮忙解释它为什么会发生吗?

0 个答案:

没有答案