Nollpekareundantag i Java: Implementering och exempel



Den här artikeln ger dig en detaljerad och omfattande kunskap om hur Null Pointer Exception fungerar i Java med massor av exempel.

Undantag behövs för att koden ska fungera smidigt och låta programmerare veta felet som ska lösas. I den här artikeln kommer vi att fokusera på Null Pointer Exception i Java i följande ordning:

Vad är Null Pointer Exception i Java?





Nollpunktsundantaget i Java är ett runtime-undantag. I Java-världen tilldelas ett speciellt nullvärde till en objektreferens. Null Pointer Exception introduceras när ett program försöker använda en objektreferens som har nollvärdet. Vilket kan vara:

  • Att åberopa en viss metod från ett null-objekt.
  • För att komma åt eller ändra ett null-objekts fält.
  • Genom att överväga längden på null, som om det vore en matris.
  • Under åtkomst eller ändring av platserna för ett null-objekt.
  • Att kasta null som ett kastbart värde.
  • Försöker synkronisera över ett null-objekt.

Varför behöver vi nollvärdet?



Null är ett unikt värde som används i Java. Null används för att visa att inget värde tilldelas en referensvariabel. Den primära tillämpningen av null ligger i att implementera datastrukturer som länkade listor och träd. Vissa andra applikationer inkluderar null-objektmönster och singleton-mönster. Ett singletonmönster anger att endast en instans av en klass kan initieras och syftar till att ge en global åtkomstpunkt till objektet.

Det bästa och enkla sättet att skapa minst en instans av en klass är att förklara alla konstruktörer som privata. Sedan skapar de en offentlig metod som returnerar den unika instansen av klassen.

hur man använder tostring-metoden i java
// Att använda randomUUID-funktionen. import java.util.UUID import java.io. * klass Singleton {// Här initialiserar vi värdena för singel och ID till null. privat statisk Singleton singel = null privat Sträng ID = null privat Singleton () {/ * Gör det privat för att förhindra skapandet av nya instanser av Singleton-klassen. * / // Skapa ett slumpmässigt ID-ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Public class TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Produktion:



null-pointer

Ovanstående exempel är en statisk instans av singleton-klassen. Instansen initialiseras högst en gång i Singleton get Instance-metoden.

konvertera från dubbel till int Java

Hur undviker jag Null Pointer Exception i Java?

För att undvika Null Pointer Exception i Java måste vi se till att alla objekt initialiseras ordentligt innan du använder dem. När en referensvariabel deklareras måste vi verifiera att ett objekt inte är null och även Innan vi begär metoder eller fält från objekt. Följande är några problem med motsvarande lösningar för att lösa problemet.

// program för att demonstrera anrop av en metod // på null orsakar NullPointerException import java.io. * klass GFG {public static void main (String [] args) {// Initialisera strängvariabel med nullvärde Sträng ptr = null // Kontrollerar om ptr.equals är noll eller fungerar bra. prova {// Denna kodrad kastar NullPointerException // eftersom ptr är noll om (ptr.equals ('gfg')) System.out.print ('Same') annat System.out.print ('Not Same')} fånga (NullPointerException e) {System.out.print ('NullPointerException Fångad')}}}

Produktion:

Att hålla koll på metodens argument

Kom alltid ihåg att innan vi kör kroppen av en ny metod, bör vi säkerställa dess argument för nullvärden och fortsätta med körningen av metoden. Om och bara när argumenten är korrekt kontrollerade. Annars kommer det att kasta ett 'IllegalArgumentException' och utropa anropsmetoden att något är fel med de godkända argumenten.

// program för att kontrollera om parametrarna är noll eller inte innan // använder dem. importera java.io. * klass GFG {public static void main (String [] args) {// String s ange en tom sträng och anropa getLength () String s = '' prova {System.out.println (getLength (s) )} fångst (IllegalArgumentException e) {System.out.println ('IllegalArgumentException fångad')} // Sträng s inställt på ett värde och anropar getLength () s = 'GeeksforGeeks' försök {System.out.println (getLength (s) )} fånga (IllegalArgumentException e) {System.out.println ('IllegalArgumentException fångad')} // Ställa in s som null och anropa getLength () s = null försök {System.out.println (getLength (s))} fångst ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException fångad')}} // Funktion för att returnera strängens längd. Det kastar // IllegalArgumentException om s är null. public static int getLength (String s) {if (s == null) throw new IllegalArgumentException ('Argumentet kan inte vara null') returnera s.length ()}}

Produktion:

Användning av Ternary Operator

En ternär operatör används för att undvika NullPointerException. Det booleska uttrycket är markerat och om uttrycket är sant returneras värdet1, annars returneras värdet2. Den ternära operatören för hantering av nollpekare kan användas: Rätt bild är motsvarande utdata.

// Ett Java-program för att visa att vi kan använda // ternary operator för att undvika NullPointerException. importera java.io. * klass GFG {public static void main (String [] args) {// Initialisera strängvariabel med nullvärde Sträng str = null Strängmeddelande = (str == null)? '': str.substring (0,5) System.out.println (meddelande) str = 'Edureka_Java_Blog' meddelande = (str == null)? '': str.substring (0,5) System.out.println (meddelande)}}

Produktion:

Edurek

hur man installerar förmörkningsfönster

Med detta kommer vi till slutet av Null Pointer Exception i Java. Jag hoppas att du fick en uppfattning om Null Pointer Exception.

Kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för studenter och yrkesverksamma som vill vara Java-utvecklare. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna 'Null Pointer Exception in Java' -blogg så återkommer vi till dig så snart som möjligt.