Null Pointer Undtagelse i Java: Implementering og eksempler



Denne artikel giver dig en detaljeret og omfattende viden om, hvordan Null Pointer Exception fungerer i Java med masser af eksempler.

Undtagelser er nødvendige for glat kørsel af kode og lad programmører kende den fejl, der skal løses. I denne artikel vil vi fokusere på Null Pointer Exception i Java i følgende rækkefølge:

Hvad er Null Pointer Exception i Java?





Nul pointer-undtagelsen i Java er en runtime-undtagelse. I Java-verdenen tildeles en objektreference en særlig nulværdi. Null Pointer Exception introduceres, når et program forsøger at bruge en objektreference, som har nulværdien. Hvilket kan være:

  • At påkalde en bestemt metode fra et null-objekt.
  • For at få adgang til eller ændre et null-objekts felt.
  • Ved at overveje længden af ​​null, som om det var en matrix.
  • Under adgang til eller ændring af slots på et null-objekt.
  • At kaste null som en kastbar værdi.
  • Forsøger at synkronisere over et null-objekt.

Hvorfor har vi brug for nulværdien?



Null er en unik værdi, der bruges i Java. Null bruges til at vise, at der ikke tildeles en værdi til en referencevariabel. Den primære anvendelse af null ligger i implementering af datastrukturer som sammenkædede lister og træer. Nogle andre applikationer inkluderer null-objektmønstre og singleton-mønstre. Et singleton-mønster specificerer, at kun en forekomst af en klasse kan initieres og sigter mod at give et globalt adgangspunkt til objektet.

Den bedste og enkle måde at oprette mindst en forekomst af en klasse på er at erklære alle konstruktørerne som private. Derefter opretter de en offentlig metode, der returnerer den unikke forekomst af klassen.

// For at bruge randomUUID-funktionen. import java.util.UUID import java.io. * klasse Singleton {// Her initialiserer vi værdierne for single og ID til null. privat statisk Singleton single = null privat String ID = null privat Singleton () {/ * Gør det privat for at forhindre oprettelsen af ​​nye forekomster af Singleton-klassen. * / // Opret et tilfældigt ID ID = UUID.randomUUID (). ToString ()} offentlig statisk Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Førerkode offentlig klasse TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Produktion:



null-pointer

bedste software til java-programmering

Ovenstående eksempel er en statisk forekomst af singleton-klassen. Forekomsten initialiseres højst en gang inden for Singleton get Instance-metoden.

php print_r array

Hvordan undgår jeg Null Pointer Exception i Java?

For at undgå Null Pointer Exception i Java skal vi sørge for, at alle objekter initialiseres korrekt, før du bruger dem. Når en referencevariabel erklæres, skal vi kontrollere, at et objekt ikke er null, og også Før vi anmoder om metoder eller felter fra objekter. Følgende er nogle problemer med dets tilsvarende løsninger til at løse dette problem.

// program til demonstration af påkaldelse af en metode // på null forårsager NullPointerException import java.io. * klasse GFG {public static void main (String [] args) {// Initialisering af strengvariabel med nulværdi String ptr = null // Kontrollerer, om ptr. Er lig med null eller fungerer fint. prøv {// Denne linje med kode kaster NullPointerException // fordi ptr er nul, hvis (ptr.equals ('gfg')) System.out.print ('Same') ellers System.out.print ('Not Same')} fange (NullPointerException e) {System.out.print ('NullPointerException fanget')}}}

Produktion:

Kontrol af argumenterne for en metode

Husk altid, at inden vi udfører kroppen af ​​en ny metode, skal vi sikre dens argumenter for nulværdier og fortsætte med udførelsen af ​​metoden. Hvis og kun når argumenterne er korrekt kontrolleret. Ellers vil det kaste et “IllegalArgumentException” og kalde kaldemetoden på, at der er noget galt med de godkendte argumenter.

// program for at kontrollere, om parametre er nul eller ikke før // brug af dem. import java.io. * klasse GFG {public static void main (String [] args) {// Strings s indstil en tom streng og kalder getLength () String s = '' prøv {System.out.println (getLength (s) )} fange (IllegalArgumentException e) {System.out.println ('IllegalArgumentException fanget')} // Streng s indstillet til en værdi og kalder getLength () s = 'GeeksforGeeks' prøv {System.out.println (getLength (s) )} fangst (IllegalArgumentException e) {System.out.println ('IllegalArgumentException fanget')} // Indstilling af s som null og kald getLength () s = null prøv {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException fanget')}} // Funktion til at returnere længden af ​​streng s. Det kaster // IllegalArgumentException hvis s er null. public static int getLength (String s) {if (s == null) throw new IllegalArgumentException ('Argumentet kan ikke være null') returner s.length ()}}

Produktion:

Brug af ternær operatør

En ternær operatør bruges til at undgå NullPointerException. Det boolske udtryk er markeret, og hvis udtrykket er sandt, returneres værdien1, ellers returneres værdien2. Den ternære operatør til håndtering af null-markører kan bruges: Det rigtige billede er det tilsvarende output.

// Et Java-program til at demonstrere, at vi kan bruge // ternary operator til at undgå NullPointerException. importer java.io. * klasse GFG {public static void main (String [] args) {// Initialisering af strengvariabel med nulværdi String str = null Strengmeddelelse = (str == null)? '': str.substring (0,5) System.out.println (besked) str = 'Edureka_Java_Blog' meddelelse = (str == null)? '': str.substring (0,5) System.out.println (meddelelse)}}

Produktion:

sql server tutorials til begyndere

Edurek

Med dette kommer vi til slutningen af ​​Null Pointer Exception i Java. Jeg håber, du har en idé om Null Pointer Exception.

Tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet på denne 'Null Pointer Exception in Java' -blog, og vi vender tilbage til dig hurtigst muligt.