JTest - переменная может быть нулевой в блоке try catch

У меня есть код, как показано ниже:

object a = getObjectFromBlahBlah(); //'a' may possibly be null

try{
    a.beginTransaction();
    .
    .
    .

} catch (Exception e) {
    logger.debug(e.getMessage());
}

После запуска JTest он предупредит меня 'a' may possibly be null, Я не хочу делать еще одну проверку, как if (a == null) return; так как я уже покрываю NullPointerException в блоке try/catch. Кто-нибудь может объяснить, что случилось с этим? Как я могу избавиться от этого предупреждения от JTest, изменив код?

1 ответ

Решение

Как я могу избавиться от этого предупреждения от JTest, изменив код?

Вы сами сказали: нужно проверить a == null, JTest не заботится о том, что вы "уже охватили исключение NullPointerException" в текущей конфигурации. Я не знаю, можно ли настроить его на распознавание, но, вероятно, вам также не разрешено изменять его конфигурацию, учитывая

что правила JTest настроены для проверки кода и целей аудита, просто не можем его игнорировать:)

Если это приемлемо для аудита, вы можете также подавить сообщение напрямую и указать причину.

Кроме того, я надеюсь

catch (Exception e) {
    logger.debug(e.getMessage());
}

это просто упрощение и не пройдет ни пересмотра кода, ни аудита!

Другие вопросы по тегам