¿Qué es una excepción de puntero nulo en Java
-
¿Qué es
NullPointerException
en Java? -
Manejar la clase
NullPointerException
en Java -
Manejar la clase
NullPointerException
en Java -
Encuentros con
NullPointerException
en argumentos de línea de comandos 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
- Arreglar Java.Net.SocketException: error de tubería rota en Java
- Clase de excepción Java Throwable VS
- Comprender la excepción de tiempo de ejecución en Java
- Corrija la excepción Java.Net.BindException: la dirección ya está en uso: Bind
- El proceso de Java Gateway se cerró antes de enviar su número de puerto
- Excepción de entrada no válida en Java