Che cos'è un'eccezione del puntatore nullo in Java
-
Che cos’è
NullPointerException
in Java? -
Gestire la classe
NullPointerException
in Java -
Gestire la classe
NullPointerException
in Java -
Incontri con
NullPointerException
negli argomenti della riga di comando in Java
Questo tutorial introduce l’eccezione del puntatore nullo Java e spiega come gestirla. Abbiamo incluso alcuni programmi di esempio da seguire.
In Java, il valore predefinito di qualsiasi variabile di riferimento è un valore nullo che punta a una posizione di memoria ma non ha alcun valore associato. Quando un programmatore tenta di eseguire qualsiasi operazione con questa variabile di riferimento, genera un’eccezione del puntatore null a causa di condizioni null.
Questo è uno scenario in cui può verificarsi questa eccezione, ma questa eccezione è la più verificata in Java, che interrompe il codice e porta a flussi di esecuzione anomali. I seguenti punti possono sollevare NullPointerException
in un codice Java:
- Chiamare il metodo di istanza di un oggetto null.
- Modifica del campo di un oggetto nullo.
- Trattare la lunghezza di null come se fosse un array.
Per gestire questa eccezione, Java fornisce una classe NullPointerException
situata nel pacchetto java.lang
. Possiamo usare questa classe nel blocco catch
per specificare il tipo di eccezione e poi catturarlo per evitare la rottura del codice.
Che cos’è NullPointerException
in Java?
L’esempio più semplice per comprendere la classe NullPointerException
è creare un oggetto string
e quindi applicare un metodo come toUpperCase()
per convertire la stringa in maiuscolo. Guarda l’esempio seguente e nota che genera un’eccezione perché l’oggetto string
è vuoto:
public class SimpleTesting {
static String str;
public static void main(String[] args) {
String newStr = str.toUpperCase();
System.out.println(newStr);
}
}
Produzione:
Exception in thread "main" java.lang.NullPointerException
Gestire la classe NullPointerException
in Java
Per gestire le eccezioni, Java fornisce un blocco try-catch. Qui, possiamo usare questi blocchi per catturare NullPointerException
ed evitare la chiusura anomala del programma. Controlla l’esempio qui sotto:
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());
}
}
}
Produzione:
{One=1, Two=2, Three=3}
Gestire la classe NullPointerException
in Java
Se conosci già il riferimento null, puoi utilizzare un blocco if-else per convalidare la variabile prima di applicare qualsiasi operazione. Questo metodo è un’ottima soluzione, ma funziona solo quando si conosce il riferimento null prima. Vedi il codice qui:
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");
}
}
Produzione:
String is null
Incontri con NullPointerException
negli argomenti della riga di comando in Java
Questo è un altro scenario in cui può verificarsi un’eccezione del puntatore nullo. L’array args[]
del metodo main()
contiene argomenti della riga di comando e se durante il runtime non viene fornito alcun argomento, questo punta a un riferimento nullo. Ottenere la sua lunghezza restituirà NullPointerException
. Vedi l’esempio qui sotto:
public class SimpleTesting {
static String[] arr;
public static void main(String[] args) {
int length = arr.length;
System.out.println("Array length : " + length);
}
}
Produzione:
Exception in thread "main" java.lang.NullPointerException