English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Почему я могу выбрасывать null в Java, и зачем мне его преобразовывать в NullPointerException?

В Java каждый тип имеет defaultManager, когда вы не инициализируете переменные класса, компилятор Java использует эти значения для инициализации их вместо вас. Null - это defaultManager для типа объекта, и вы также можете вручную присвоить null объекту в методе.

Object obj = null;

Однако, вы не можете использовать объект с значением null или (если вы используете значение null вместо объекта) объект, и это вызовет NullPointerException.

Пример

public class Demo {
   String name = "Krishna";
   int age = 25;
   public static void main(String args[]) {
      Demo obj = null;
      System.out.println(obj.age);
      System.out.println(obj.name);
   }
}

Run-time exception

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:11)

вызвать NullPointerException

Вы также можете использовать ключевое слово throw для вызова NullPointerException в Java.

Пример

public class ExceptionExample {
   public static void main(String[] args) {
      System.out.println("Hello");
      NullPointerException nullPointer = new NullPointerException();
      throw nullPointer;
   }
}

Результат вывода

Hello
Exception in thread "main" java.lang.NullPointerException
   at MyPackage.ExceptionExample.main(ExceptionExample.java:6

выбрасывается пустая величина

Согласно документации Java, если вы пытаетесь выполнить NullPointerException-

  • Вызов метода a объекта с помощью null (экземпляра).

  • Доступ, изменение, печать полей пустой величины (объекта).

  • Попытка доступа (печать/использование в предложении) длины пустой величины.

  • Выбрасывается пустая величина.

  • Доступ или изменение элемента/слота с пустой величиной.

означает, что если抛ается пустая величина, то происходит исключение NullPointer, это не преобразование в более высокий тип.

Пример

public class Demo {
   public static void main(String args[]) {
      throw null;
   }
}

Run-time exception

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:5)
Рекомендуем для вас