Как увидеть все возможные исключения исключений нулевого указателя в моем коде? - PullRequest
0 голосов
/ 04 мая 2018

Я использую и Kotlin, и Java в своем коде, из-за гибкости Notlinable Kotlin, я получаю method invocation ... may produce java.lang.NullPointerException линтов в моем коде,

Я запускаю Code inspection в моем проекте, он отображает

  • Android Lint: Доступность
  • Android Lint: правильность
  • Android Lint: Интернационализация
  • Android Lint: Производительность

и

  • Android Lint: удобство использования

ни один из них не перечисляет возможные ограничения NPE? Есть ли место для перечисления этих ссылок?

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Существует очень хороший анализатор из Facebook, который называется infer , который отлично справляется не только с поиском NPE, но и с другими ошибками, такими как утечка ресурсов, условия гонки и т. Д.

0 голосов
/ 08 мая 2018

Я только что понял, когда вы проверяете код в Android Studio, есть раздел под названием Probable bugs

под этим разделом есть Constant conditions & exceptions

и отображает все строки NPE, не специально для NPE, но может помочь в этом случае.

0 голосов
/ 04 мая 2018

Вы можете использовать Null Away , который является инструментом, созданным командой разработчиков Uber. Это поможет вам найти возможный NPE в вашем коде за счет небольшой конфигурации в вашем коде.

NullAway - это инструмент, помогающий устранить исключения NullPointerException (NPE) в вашем коде Java. Чтобы использовать NullAway, сначала добавьте аннотации @Nullable в ваш код везде, где поле, параметр метода или возвращаемое значение могут быть нулевыми. Учитывая эти аннотации, NullAway выполняет серию локальных проверок на основе типов, чтобы гарантировать, что любой указатель, который разыменовывается в вашем коде, не может быть нулевым. NullAway аналогичен проверке обнуляемости на основе типов в языках Kotlin и Swift, а также средам Checker Framework и Eradicate null для Java.

NullAway - это быстро. Он построен как плагин для ошибок и может работать на каждой сборке вашего кода. В наших измерениях накладные расходы при запуске NullAway обычно меньше 10%. NullAway также практичен: он не предотвращает все возможные NPE в вашем коде, но он улавливает большинство NPE, которые мы наблюдали в производстве, в то же время накладывая разумную нагрузку на аннотации, что дает большую «отдачу от затраченных средств». В Uber мы объединяем NullAway с RAVE для обеспечения полной защиты от NPE в наших приложениях для Android.

Имейте в виду, что это только поможет вам найти NPE, но не гарантирует, что вы его не получите.

Надеюсь, это поможет вам, С Уважением, Матье

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