Почему объекты исключения Null Pointer имеют пустое поле причины? - PullRequest
2 голосов
/ 17 февраля 2010

Я наблюдаю за некоторыми журналами сервера, и их довольно много NullPointerExceptions. Журналы содержат трассировку стека и причина из getCause .

Проблема в том, что эти NPE не содержат причину. В JavaDocs говорится, что причина нулевая, если она отсутствует или неизвестна (не очень полезно).

Итак, мой вопрос: кто-нибудь сталкивался с этими "беспричинными" NPE? Если да, то что было проблемой в этой ситуации? Я немного заблудился здесь, поэтому любая оценка будет оценена.

Ответы [ 2 ]

4 голосов
/ 17 февраля 2010

У NPE никогда нет причин, потому что они генерируются JVM, когда вы пытаетесь получить доступ к нулевой ссылке на объект.Трассировка стека должна содержать информацию о строке, где это произошло.

3 голосов
/ 17 февраля 2010

Причина исключения NullPointerException обычно очень ясна из трассировки стека. Вы смотрите на линию, где это произошло, и наблюдаете, что там может быть нулевым. Дальнейшей причины нет (причина здесь в другом исключении, заключенном в исключение NullPointerException).

Если исключение NullPointerException не имеет трассировки стека, это может произойти, и его сложнее диагностировать, но если я понимаю ваш вопрос, то здесь это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...