Как справиться с загадкой `NullPointerException`?

Маскировка NullPointerException даст очередной бред разработчикам, так как их засыпает логикой, которую мы позволяем Object указывать в памяти на null значение. Если мы поймаем NullPointerException , мы снова поймаем ошибочный код, который принимает значение null. В идеале мы должны запретить объекту принимать нулевое входное значение в коде и быть допустимым кодом. Я видел, как null передается в качестве параметров в один из объектов, созданных в коде, и код успешно приводит пользователя к выполнению действий. Как это возможно. Рискованно ли реализовывать такую ​​реализацию, которая противоречит нормам NullPointerException? В качестве запасного варианта мы даже не можем использовать RuntimeException, так как это замаскирует NullPointerException от возникновения, и мы не узнаем, что код с ошибками изначально был ошибкой?

Это слишком широко, чтобы ответить в целом. Но, как правило, они являются результатом отсутствия проверки пользовательского ввода или ошибок кодирования.

Thilo 24.02.2019 08:29

Перехват исключения нулевого разыменования обычно является плохой идеей независимо от платформы/языка. Если ваш код допускает значение null для какого-либо параметра, обработайте его явно. В противном случае, за исключением некоторых глючных библиотек и т. д., просто не делайте этого. Однако не удается найти окончательную ссылку на Java (quora.com/…).

Eugene Podskal 24.02.2019 17:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
60
1

Ответы 1

Поскольку у вас есть тег для Spring, я поделюсь примером. Он использует Springboot и Hibernate Validator, но только для информации об одном из способов обработки этого случая.

http://www.springboottutorial.com/spring-boot-validation-for-rest-services

Привет. Я новичок на этом сайте. Могу я узнать, почему за это проголосовали. Как объяснено в моем ответе, это было опубликовано только для информации в качестве одного примера того, в какой момент обрабатывался нуль, а не фактический ответ.

Ben G 24.02.2019 12:23

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