En Null Pointer Exception , eller java.lang.NullPointerException , uppstår när ett program försöker komma åt en referens typ som inte har initierats . I Java , nonprimitive typer såsom String eller Integer hålla en pekare till ett värde , inte själva värdet . Om du försöker att hänvisa till en referens typ och det har inte initierats , är pekaren pekar inte till någonting , och är därför noll . Detta inträffar vanligen när en referens typ görs skickas som ett argument till en metod . Det enklaste sättet att hantera undantaget är att berätta den metod vad du gör om den får en null-pekare . Instruktioner
Skapa en enkel klass för att producera NullPointerException
1
Skapa en ny klass i din ansökan enligt följande . Denna klass är utformad för att producera en null-pekare undantag
public class NullPointTest {
public void main ( String [] args ) {
uppgift ( null ) ; .
}
public static void uppdrag ( Integer x ) {
int y = 1 + x ;
}
}
Sida 2
Kör klassen . Följande kommer att skriva till konsolen :
Undantag i tråden " main " java.lang.NullPointerException
på NullPoint.task ( NullPoint.java : 10 ) katalog
vid NullPoint . main ( NullPoint.java : 6 ) Addera 3
märke till problemet beror på att du passerar noll och din " uppgift " metoden förväntar sig en pekare till ett heltal
Skriva ett fel för felsökning
4
Lägg till följande kod före början av " uppgiften " metoden . Detta gör att du kan felsöka genom att visa dig var den null-värde tas emot .
If ( x == null ) {
System.out.println ( " uppdrag ( ) har fått en null-värde för x " ) ;
}
5
Kontrollera att din kod ser ut så här :
public class NullPointTest {
public static void main ( String [] args ) {
uppgift ( null ) ;
}
public static void uppdrag ( Integer x ) {
if ( x == null ) {
System.out.println ( " uppdrag ( ) har fått ett null- värde för x " ) ;
}
int y = 1 + x ;
}
}
6
Kör klassen . Följande ska skrivas ut på skärmen i stället för undantaget : "uppgift ( ) har fått ett null- värde för x . " Addera Hantering av Exception
7
Tilldela ett . standardvärdet när ett null- värde passeras genom att lägga till följande i början av " uppgiften " metoden
if ( x == null ) {
x = 1 ;
}
8
Kontrollera att din kod ser ut så här :
public class NullPointTest {
public static void main ( String [] args ) {
uppgift ( null ) ;
}
public static void uppdrag ( Integer x ) {
if ( x == null ) {
x = 1 ;
}
int y = 1 + x ;
}
}
9 < p> Kör klassen. Du ska inte längre se NullPointerException eftersom x nu pekar till 1 .