Какие изменения были внесены в обработку NullPointerException в Java начиная с версии 11 и до 17?

Начиная с Java 14 (а не с 11) была введена улучшенная диагностика NullPointerException — так называемые "Helpful NullPointerExceptions".

Короткий ответ

Что ответить на собеседовании

Начиная с Java 14 (а не с 11) была введена улучшенная диагностика NullPointerException — так называемые "Helpful NullPointerExceptions". Эта функция позволяет JVM выдавать более информативные сообщения об ошибках, указывая, какая именно переменная или выражение было null, что облегчает отладку.

Подробный разбор

Ответ с пояснениями

Начиная с Java 14 (а не с 11) была введена улучшенная диагностика NullPointerException — так называемые "Helpful NullPointerExceptions". Эта функция позволяет JVM выдавать более информативные сообщения об ошибках, указывая, какая именно переменная или выражение было null, что облегчает отладку.

В версиях Java 11-13 таких изменений не было, а с 14 по 17 эта возможность стала стандартной и улучшалась.

Пример сообщения с Helpful NullPointerException:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "str" is null

Для включения этой функции в ранних версиях нужно было запускать JVM с флагом -XX:+ShowCodeDetailsInExceptionMessages, а начиная с Java 15 она включена по умолчанию.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее