Ответ
NullPointerException (NPE) — это распространенное исключение времени выполнения (runtime exception) в языках вроде Java, C# или Kotlin. Оно возникает при попытке использовать ссылку на объект, которая имеет значение null (т.е. не указывает ни на какой объект в памяти).
Типичные причины:
- Вызов метода у
null-ссылки. - Обращение к полю или индексу элемента
null-ссылки. - Синхронизация по
null-объекту.
Пример на Java:
String text = null; // Ссылка инициализирована как null
System.out.println(text.length()); // Выбросится NullPointerException
Способы предотвращения NPE:
- Явная проверка на
null:if (text != null) { System.out.println(text.length()); } - Использование
Optional(Java 8+):Optional<String> optionalText = Optional.ofNullable(text); optionalText.ifPresent(t -> System.out.println(t.length())); - Аннотации (
@Nullable,@NonNull): Помогают статическим анализаторам кода и IDE предупреждать о потенциальных NPE. - Идиомы языка: Использование безопасного вызова (
?.) в Kotlin или условного доступа в C#.