Slik reparerer Java: Lang Null Pointer Exception

En Null Pointer Exception, eller java.lang.NullPointerException, oppstår når et program prøver å få tilgang til en referansetype som ikke er initialisert. I Java, nonprimitive typer som String eller Integer holde en peker til en verdi, ikke selve verdien. Hvis du prøver å referere til en referansetype, og det har ikke blitt initialisert, blir pekeren ikke peke på noe, og er derfor null. Dette skjer ofte når en referansetype blir vedtatt som et argument til en metode. Den enkleste måten å håndtere unntaket er å fortelle metoden hva du skal gjøre hvis den mottar en nullpeker.

Bruksanvisning

Lage en enkel klasse for å produsere NullPointerException

1 Opprett en ny klasse i programmet som følger. Denne klassen er konstruert for å frembringe en nullpeker unntak.

public class NullPointTest {

public static void main (String [] args) {

task(null);

}

public static void oppgave (heltall x) {

int y = 1 + x;

}

}

2 Kjør klassen. Følgende vil skrive ut til konsollen:

Unntak i tråden "main" java.lang.NullPointerException

på NullPoint.task (NullPoint.java:10)

på NullPoint.main (NullPoint.java:6)

3 Legg merke til problemet oppstår fordi du passerer null og din "oppgave" metoden forventer en peker til et heltall.

Skrive en feil for feilsøking

4 Legg til følgende kode før begynnelsen av "oppgaven" metoden. Dette vil tillate deg å feilsøke ved å vise deg hvor nullverdi mottas.

if (x == null) {

System.out.println ( "oppgave () har fått en nullverdi for x");

}

5 Kontroller at koden ser slik ut:

public class NullPointTest {

public static void main (String [] args) {

task(null);

}

public static void oppgave (heltall x) {

if (x == null) {

System.out.println ( "oppgave () har fått en nullverdi for x");

}

int y = 1 + x;

}

}

6 Kjør klassen. Følgende bør skrives ut på skjermen i stedet for unntaket: ". Oppgave () har fått en nullverdi for x"

Håndtering av Exception

7 Tildele en standardverdi når en nullverdi føres ved å legge følgende til begynnelsen av "oppgaven" metoden.

if (x == null) {

x = 1;

}

8 Kontroller at koden ser slik ut:

public class NullPointTest {

public static void main (String [] args) {

task(null);

}

public static void oppgave (heltall x) {

if (x == null) {

x = 1;

}

int y = 1 + x;

}

}

9 Kjør klassen. Du skal ikke lenger se NullPointerException fordi x nå peker mot en.