¿Qué es una excepción de puntero nulo en Java

Mohammad Irfan 12 octubre 2023
  1. ¿Qué es NullPointerException en Java?
  2. Manejar la clase NullPointerException en Java
  3. Manejar la clase NullPointerException en Java
  4. Encuentros con NullPointerException en argumentos de línea de comandos en Java
¿Qué es una excepción de puntero nulo en Java

Este tutorial presenta la excepción de puntero nulo de Java y cómo puede manejarla. Hemos incluido algunos programas de muestra para que los siga.

En Java, el valor predeterminado de cualquier variable de referencia es un valor nulo que apunta a una ubicación de memoria pero no tiene ningún valor asociado. Cuando un programador intenta realizar cualquier operación con esta variable de referencia, lanza una excepción de puntero nulo debido a condiciones nulas.

Este es un escenario en el que puede ocurrir esta excepción, pero esta excepción es la más ocurrida en Java, lo que rompe el código y conduce a flujos de ejecución anormales. Los siguientes puntos pueden generar NullPointerException en un código Java:

  • Llamar al método de instancia de un objeto nulo.
  • Modificar el campo de un objeto nulo.
  • Tratar la longitud de nulo como si fuera un array.

Para manejar esta excepción, Java proporciona una clase NullPointerException ubicada en el paquete java.lang. Podemos usar esta clase en el bloque catch para especificar el tipo de excepción y luego capturarlo para evitar la rotura del código.

¿Qué es NullPointerException en Java?

El ejemplo más básico para entender la clase NullPointerException es crear un objeto string y luego aplicar un método como toUpperCase() para convertir la cadena en mayúsculas. Mire el ejemplo a continuación y observe que arroja una excepción porque el objeto string está vacío:

public class SimpleTesting {
  static String str;
  public static void main(String[] args) {
    String newStr = str.toUpperCase();
    System.out.println(newStr);
  }
}

Producción :

Exception in thread "main" java.lang.NullPointerException

Manejar la clase NullPointerException en Java

Para manejar excepciones, Java proporciona un bloque try-catch. Aquí, podemos usar estos bloques para detectar NullPointerException y evitar la terminación anormal del programa. Mira el ejemplo a continuación:

public class SimpleTesting {
  static String str;
  public static void main(String[] args) {
    try {
      String newStr = str.toUpperCase();
      System.out.println(newStr);
    } catch (NullPointerException e) {
      System.out.println("Null Pointer: " + e.getMessage());
    }
  }
}

Producción :

{One=1, Two=2, Three=3}

Manejar la clase NullPointerException en Java

Si ya conoce la referencia nula, puede usar un bloque if-else para validar la variable primero antes de aplicar cualquier operación. Este método es una excelente solución, pero solo funciona cuando conoce la referencia nula antes. Vea el código aquí:

public class SimpleTesting {
  static String str;
  public static void main(String[] args) {
    if (str != null) {
      String newStr = str.toUpperCase();
      System.out.println(newStr);
    } else
      System.out.println("String is null");
  }
}

Producción :

String is null

Encuentros con NullPointerException en argumentos de línea de comandos en Java

Este es otro escenario en el que puede producirse una excepción de puntero nulo. el array args[] del método main() contiene argumentos de línea de comandos, y si durante el tiempo de ejecución no se proporciona ningún argumento, esto apunta a una referencia nula. Obtener su longitud devolverá NullPointerException. Vea el ejemplo a continuación:

public class SimpleTesting {
  static String[] arr;
  public static void main(String[] args) {
    int length = arr.length;
    System.out.println("Array length : " + length);
  }
}

Producción :

Exception in thread "main" java.lang.NullPointerException

Artículo relacionado - Java Exception