Причина, по которой вы не ловите исключение, заключается в том, что это не NullPointerException
, а com.mapp.node.logging.exception.ConstructingFatalThrowableException
.Это исключение выдается с сообщением (которое следует за именем исключения) "java.lang.NullPointerException" , и это является источником путаницы.Попробуйте поймать ConstructingFatalThrowableException
вместо NPE и посмотрите, работает ли он.
Также обратите внимание, что вы не должны ловить NullPointerException
.Это RuntimeException
, и эта группа исключений обычно указывает на программную ошибку, и в этом случае вы не должны ее «обрабатывать», потому что, если вы знали, что ее следует ожидать, вам следовало бы избежать этой ошибки.Посмотрите, что говорят docs :
Исключения времени выполнения представляют проблемы, которые являются результатом программной проблемы, и поэтому нельзя ожидать, что клиентский код API будет разумно ожидатьоправиться от них или обращаться с ними любым способом .Такие проблемы включают арифметические исключения, такие как деление на ноль;Исключения указателя, такие как попытка доступа к объекту через нулевую ссылку (...)
Имея это в виду, просто избегайте NullPointerException
.Проверьте пример ниже:
if(var!= null) {
//Normal code here
}
else {
//Handle the null pointer here
}