Nwlapcug.com


Come riparare Java: eccezione di puntatore nullo Lang

Un'eccezione di puntatore Null, o java.lang.NullPointerException, si verifica quando un'applicazione tenta di accedere a un tipo di riferimento che non è stato inizializzato. In Java, non primitivo tipi ad esempio String o Integer contenere un puntatore a un valore, non il valore stesso. Se si tenta di fare riferimento a un tipo di riferimento e non è stato inizializzato, il puntatore non sta puntando a qualcosa e pertanto è null. Questa eventualità si verifica quando un tipo di riferimento viene passato come argomento a un metodo. Il modo più semplice per gestire l'eccezione è raccontare il metodo cosa fare se riceve un puntatore null.

Istruzioni

Creazione di una semplice classe per produrre la NullPointerException

1

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

public class NullPointTest {

Public Shared Sub main (String [] args) {

task(null);

}

Public Shared Sub task(Integer x) () {

int y = 1 + x;

}

}

2

Eseguire la classe. Di seguito verrà stampato nella console:

Exception in thread "main" java.lang.NullPointerException

presso NullPoint.task(NullPoint.java:10)

presso NullPoint.main(NullPoint.java:6)

3

Si noti il problema si verifica perché si sta passando null e il metodo di "attività" è previsto un puntatore a un valore integer.

Un errore di stampa per il debug

4

Aggiungere il seguente codice prima dell'inizio del metodo "attività". Questo vi permetterà di eseguire il debug che vi mostra dove viene ricevuto il valore null.

if(x == null) () {

System.out.println("Task() ha ricevuto un valore null per x");

}

5

Verificare che il codice simile al seguente:

public class NullPointTest {

Public Shared Sub main (String [] args) {

task(null);

}

Public Shared Sub task(Integer x) () {

if(x == null) () {

System.out.println("Task() ha ricevuto un valore null per x");

}

int y = 1 + x;

}

}

6

Eseguire la classe. Quanto segue dovrebbe stampare sullo schermo al posto di eccezione: "task ha ricevuto un valore null per x".

Gestione dell'eccezione

7

Assegnare un valore predefinito quando viene passato un valore null aggiungendo quanto segue all'inizio del metodo "attività".

if(x == null) () {

x = 1;

}

8

Verificare che il codice simile al seguente:

public class NullPointTest {

Public Shared Sub main (String [] args) {

task(null);

}

Public Shared Sub task(Integer x) () {

if(x == null) () {

x = 1;

}

int y = 1 + x;

}

}

9

Eseguire la classe. Non si dovrebbe vedere il NullPointerException, perché x ora punta a 1.