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

¿Por qué puedo lanzar null en Java y ¿por qué debo convertirlo en NullPointerException?

在 Java 中,每种类型都有默认值,当您不初始化类的实例变量时,Java 编译器将使用这些值为您初始化它们。Null 是对象类型的默认值,您也可以手动将 null 分配给方法中的对象。

Object obj = null;

但是,不能使用具有 null 值的对象或(如果使用 null 值而不是对象)对象,否则将引发 NullPointerException。

Ejemplo

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);
   }
}

Excepción en tiempo de ejecución

Excepción en hilo "main" java.lang.NullPointerException
   en july_set3.Demo.main(Demo.java:11)

抛出 NullPointerException

还可以使用 throw 关键字在 Java 中引发 NullPointerException。

Ejemplo

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

Resultado de salida

Hola
Excepción en hilo "main" java.lang.NullPointerException
   en MyPackage.ExceptionExample.main(ExceptionExample.java:6

lanzar un valor nulo

Según la documentación de Java, si intenta ejecutar NullPointerException-

  • Llamar al método a (instancia) con un objeto null.

  • Acceder, modificar, imprimir el campo de un valor nulo (objeto).

  • Intentar acceder (imprimir/En la declaración usar la longitud del valor nulo).

  • lanzar un valor nulo.

  • Acceder o modificar un elemento con valor nulo/Puesto.

significa que si se lanza un valor nulo, se producirá una excepción de puntero nulo, esto no es una conversión hacia arriba.

Ejemplo

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

Excepción en tiempo de ejecución

Excepción en hilo "main" java.lang.NullPointerException
   en july_set3.Demo.main(Demo.java:5)
Te gustará