NullPointerException
NPE
NullPointerException
або NPE — це помилка, з якою знайомий кожен програміст Java. Ця помилка є рекордсменом за кількістю роздратування серед програмістів.
Спочатку розглянемо поняття значення null
для змінної типу string. Коли ми створюємо змінну типу string, але забуваємо її ініціалізувати, вона набуває значення null
.
Для порівняння, якщо ми не ініціалізуємо змінну типу int
, вона набуває значення 0
.
Розглянемо приклад змінної типу string зі значенням null
:
Main
package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }
Як видно, на екрані виводиться null
, і код, здається, працює. Але тепер спробуємо використати будь-який метод із змінною зі значенням null
:
Main
package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }
Якщо спробувати викликати будь-який метод для змінної рядкового типу зі значенням null, виникне NullPointerException
.
Може здатися, що ця помилка не є серйозною, але згодом, коли ви будете отримувати значення, які не писали особисто ви, ви часто з нею стикатиметесь. Тому важливо вже зараз зрозуміти, як вирішувати цю помилку.
Способи уникнення NPE:
Бути уважним. Якщо створюєте змінну рядкового типу, перевірте, чи ініціалізували її;
Використовувати перевірку на null перед використанням змінної, наприклад.
Main
package com.example; public class Main { public static void main(String[] args) { String string = null; if (string == null) { // null check System.out.println("Can't use methods with string, because value is null"); } else { System.out.println(string); } } }
Swipe to start coding
Ви розробляєте систему для обробки електронних адрес співробітників.
Деякі записи електронної пошти можуть бути відсутніми (null
).
Ваше завдання — перевірити та обробити лише не-null та правильно відформатовані адреси електронної пошти.
- Вам надано масив електронних адрес співробітників.
- Переберіть кожну
email
у масиві. - Для кожного запису:
- Перевірте, чи
email
не єnull
- А також чи містить символ
@
- Перевірте, чи
- Якщо обидві умови виконуються, виведіть адресу електронної пошти у консоль.
- В іншому випадку виведіть:
"Invalid or missing email"
Рішення
solution
Дякуємо за ваш відгук!