Когда можно перехватить исключение NullPointerException?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Когда можно перехватить исключение NullPointerException?

Сообщение Anonymous »

Эффективная Java рекомендует не перехватывать NullPointerException.
Всегда ли это правильно?

Во многих случаях перехвата NullPointerException тело перехвата вызывает только printStackTrace().

Если я не перехватываю NullPointerException и не вызываю printStackTrace(), как мне это сделать можно проверить место, где произошло исключение?

А также, если я перехватываю NullPointerException и тело catch пусто, мы не сможем получить никакой информации о стеке в это время, не так ли?

ОБНОВЛЕНИЕ

Я проанализировал статистику перехвата RuntimeException в исходном коде Google Android, AOSP4.2.2_r1.2.

Имеется 249 перехватов RuntimeException, а последующие действия представляют собой статистику тела перехвата.

Код: Выделить всё

42%: throw it again as other Exceptions (RuntimeException: 33%, others: 8%)

32%: just return null or 0/false/true or other default values

14%: just call log or printstacktrace

5%: just comment like "// Fall through.", "// ignore, not a valid type.", "// system process dead", "// do nothing"

2%: empty body

3%: display error messages or send fail codes (ex. network service discovery failed: replyToMessage(msg, NsdManager.STOP_DISCOVERY_FAILED, NsdManager.FAILURE_INTERNAL_ERROR); )

3%: intialize or reset related variables.
В большинстве случаев dalvik и external обрабатывают NPE, выдавая другие исключения.

Но платформы обычно обрабатывают это, возвращая null или другие значения.
  • Считаете ли вы, что выдача других исключений в catch-body не является плохой или хорошей обработкой?
  • Если NPE возникло на более высоком уровне уровни (например, приложения) и разработчик подтверждает, что исключение не является критическим, поскольку приложение полностью независимое, могу ли я согласиться, чтобы наш разработчик игнорировал NPE путем перехвата?
и еще одна вещь:

Могу ли я заключить, что исходный код Google Android Framework может быть нестабильным в аспектах RuntimeException?

Подробнее здесь: https://stackoverflow.com/questions/182 ... rexception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»