Обработчик ошибок Grails всегда получает нулевой указатель - PullRequest
3 голосов
/ 21 июля 2011

У нас есть специальный контроллер ошибок, который вызывается после всех наших ошибок.Однако большинство наших ошибок в конечном итоге попадают в контроллер как нулевые указатели, даже если исходная ошибка не была нулевым указателем.Есть идеи?Код ниже.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

1 Ответ

1 голос
/ 21 июля 2011

Это не потому, что вы ссылаетесь на что-то, что является нулевым, внутри обработчика ошибок, и поэтому вы случайно генерируете другое исключение, которое снова перехватывается?

Можете ли вы попробовать изменить:

def exception = request.exception.cause.class  
*От 1005 * до
def exception = request?.exception?.cause?.class  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...