我们有一个自定义错误控制器,在我们遇到所有错误后调用它。但是,我们抛出的大多数错误最终作为空指针进入控制器,即使原始错误不是空指针。有任何想法吗?代码如下。如果需要,可以使用Bootstrap和UrlMappings。感谢
错误处理程序方法
def HandleErrors =
{
def exception = request.exception.cause.class
if (exception)
{
Exception ex = request.exception //This exception is always a NPE
...
抛出异常的代码块。我原本在这里没有尝试捕获,但是想添加它以便我确定被抛出的异常不是NPE。它找不到文件异常。
try{
def writer = new FileWriter( new File(fileSaveLocation));
}
catch ( ex)
{
throw(ex)
}
编辑:添加推送到异常处理程序的异常
Exception:org.codehaus.groovy.grails.web.errors.GrailsWrappedRuntimeException
Cause:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
答案 0 :(得分:1)
这不是因为你在错误处理程序中引用了一些null,因此无意中抛出了另一个异常,这又被捕获了吗?
你可以尝试改变:def exception = request.exception.cause.class
到
def exception = request?.exception?.cause?.class