Un Pointer Exception Null , o java.lang.NullPointerException , si verifica quando un'applicazione tenta di accedere ad un tipo di riferimento che non è stato inizializzato . In Java , i tipi nonprimitive come String o Integer in possesso di un puntatore a un valore , non il valore stesso . Se si tenta di fare riferimento a un tipo di riferimento e non è stata inizializzata , il puntatore non punta a nulla , ed è quindi nullo . Ciò si verifica comunemente quando un tipo di riferimento viene passato come argomento a un metodo. Il modo più semplice per gestire l'eccezione è di informare il metodo che cosa fare se si riceve un puntatore nullo .
Istruzioni Creazione di una semplice classe per produrre la NullPointerException
1
Creare una nuova classe nella vostra applicazione , come segue . Questa classe è stata progettata per produrre un'eccezione di puntatore nullo
public class NullPointTest {
public static void main (String [] args ) {
compito
( null) ; .
}
compito public static void ( Integer x ) {
int y = 1 + x ;
}
} < br >
2
eseguire la classe . Quanto segue stampa alla console :
Exception in thread " main" java.lang.NullPointerException
a NullPoint.task ( NullPoint.java : 10 ) per
a NullPoint . principale ( NullPoint.java : 6 )
3
Notare il problema si verifica perché si sta passando nulla e il metodo di "compito" si aspetta un puntatore ad un intero
< br . >
Stampa di un errore per il debug
4
Aggiungere il seguente codice prima dell'inizio del metodo del "compito" . Questo vi permetterà di eseguire il debug mostrandovi in cui viene ricevuto il valore null.
If ( x == null) {
System.out.println ( "task ( ) ha ricevuto un valore nullo per x " ) ; }
5
Controlla che il codice è simile al seguente :
public class NullPointTest {
< p > public static void main ( String [] args ) {
compito
( null) ; }
compito public static void ( Integer x ) {
< p > if ( x == null) {
System.out.println ( "task ( ) ha ricevuto un valore nullo per x " ) ; }
int y = 1 + x ;
}
}
6
eseguire la classe . Il seguente dovrebbe stampare sullo schermo al posto di eccezione : "compito ( ) ha ricevuto un valore nullo per x . "
Gestire l'eccezione
7
Assegnare un . valore predefinito quando un valore null viene passato con l'aggiunta del seguente all'inizio del metodo del "compito "
if ( x == null) {
x = 1 ;
< p > }
8
Controlla che il codice è simile al seguente :
public class NullPointTest {
public static void main ( String [] args ) {
compito
( null) ; }
compito public static void ( Integer x ) {
if ( x == null) { < br >
x = 1; }
int y = 1 + x ;
}
} Pagina 9 < p > Esegui la classe . Non dovrebbero più vedere la NullPointerException perché x ora punta a 1 .