Come riparare Java: Lang Null Pointer Exception

January 1

Una eccezione Null Pointer, o java.lang.NullPointerException, si verifica quando un'applicazione tenta di accedere a un tipo di riferimento che non è stato inizializzato. In Java, i tipi nonprimitive come String o Integer in possesso di un puntatore ad un valore, non il valore stesso. Se si tenta di fare riferimento a un tipo di riferimento e non è stato inizializzato, il puntatore non punta a nulla, ed è quindi nullo. Questo si verifica comunemente quando un tipo di riferimento viene passato come argomento a un metodo. Il modo più semplice per gestire l'eccezione è quello di raccontare il metodo che cosa fare se si riceve un puntatore nullo.

istruzione

Creazione di una semplice classe per produrre la NullPointerException

1 Creare una nuova classe nell'applicazione come segue. Questa classe è progettato per produrre un'eccezione di puntatore nullo.

public class NullPointTest {

Main (string [] args) {public static void

task(null);

}

compito pubblico static void (Integer x) {

int y = 1 + x;

}

}

2 Eseguire la classe. Quanto segue stampa alla console:

Eccezione in filetto java.lang.NullPointerException "principale"

a NullPoint.task (NullPoint.java:10)

a NullPoint.main (NullPoint.java:6)

3 Si noti il ​​problema si verifica perché si sta passando nulla e il metodo di "compito" si aspetta un puntatore ad un intero.

Stampa di un errore per il debug

4 Aggiungere il seguente codice prima dell'inizio del metodo "task". Questo vi permetterà di eseguire il debug, mostrando dove viene ricevuto il valore nullo.

if (x == null) {

System.out.println ( "compito () ha ricevuto un valore nullo per x");

}

5 Verificare che il codice sia simile al seguente:

public class NullPointTest {

Main (string [] args) {public static void

task(null);

}

compito pubblico static void (Integer x) {

if (x == null) {

System.out.println ( "compito () ha ricevuto un valore nullo per x");

}

int y = 1 + x;

}

}

6 Eseguire la classe. Quanto segue dovrebbe stampare sullo schermo al posto di eccezione: ". Compito () ha ricevuto un valore nullo per x"

Gestione della Exception

7 Assegnare un valore predefinito quando un valore nullo viene passato aggiungendo la seguente all'inizio del metodo "task".

if (x == null) {

x = 1;

}

8 Verificare che il codice sia simile al seguente:

public class NullPointTest {

Main (string [] args) {public static void

task(null);

}

compito pubblico static void (Integer x) {

if (x == null) {

x = 1;

}

int y = 1 + x;

}

}

9 Eseguire la classe. Si dovrebbe più vedere la NullPointerException perché x ora punta a 1.