Java >> Java tutorial >  >> Java

Hvad er en NullPointerException, og Hvordan fikser man det?

I Java er java.lang.NullPointerException er en populær undtagelse, som programmører står over for, mens de arbejder på webapplikationer og programmer. Fejlen opstår, når koden forsøger at få adgang til en referencevariabel, der peger på en nulværdi. Det kan løses ved at bruge en if-else betingelse eller en try-catch-blok for at kontrollere, hvad variablen peger på.

Lad os dykke dybere ned i detaljerne i denne fejl.

Hvad er NullPointerException?

Null-værdier bruges i Java for ikke at tildele nogen værdi til en variabel. NullPointerException er en runtime fejl og opstår normalt under følgende scenarier –

  • Kaldning af en metode fra en objektinstans, der er null under kørsel
  • Forsøger at ændre eller få adgang til et felt i null-objektet
  • Prøver at bestemme længden af ​​et nul-objekt, som om det var et array
  • Forsøg på at ændre eller få adgang til indekset for et array, der er null
  • Indsendelse af en nulværdi i programmet

Se koden nedenfor –

Integer a;
a= new Integer(7);

I den første linje, en variabel a er erklæret, men peger ikke på noget. Men i den anden linje oprettes et objekt, og variablen peger på heltal 7 . Men hvis du ikke opretter et objekt og tildeler det til en variabel, så prøv at få adgang til det, NullPointerException vil blive hævet.

Hvordan rettes NullPointerException?

Følgende program vil håndtere fejlen, selvom den er hævet.

if(num ==null) num =" "; //This is an example of preventive coding
synchronized(num) {
System.out.println("synchronized block");
}     

Måder at undgå NullPointerException

  • For at undgå NullPointerException , husk altid på, at du skal initialisere alle variabler korrekt, før du forsøger at bruge dem
  • Sørg for, at de metoder, du opretter, returnerer tomme variabler i stedet for null-værdier
  • Brug metoder såsom contains() , containsValue() og containsKey() hvis du tror, ​​at koden kan give fejlen
  • Den ternære operator kan bruges –
String message = (str == null) ? " " : str.substring(0, str.length()-1);
  • Brug String.valueOf() metoden i stedet for toString() metode –
Object rank = null;
System.out.println(String.valueOf(rank));  //prints null
System.out.println(rank.toString()); //throws NullPointerException
  • Sørg for, at metodernes argumenter ikke har nulværdier

Metoderne beskrevet ovenfor vil hjælpe dig med at rette og undgå NullPointerException i din kode. Bortset fra disse pointere skal du sørge for, at de eksterne biblioteker, du bruger, ikke returnerer en reference, der indeholder en null-værdi. Du kan læse mere om metoderne for at lære om deres returværdier og funktionaliteter.


Java tag