Null Pointer Unntak i Java: Implementering og eksempler



Denne artikkelen vil gi deg en detaljert og omfattende kunnskap om hvordan Null Pointer Exception fungerer i Java med mange eksempler.

Unntak er nødvendig for jevn kjøring av kode og la programmerere vite feilen som skal løses. I denne artikkelen vil vi fokusere på Null Pointer Exception i Java i følgende rekkefølge:

Hva er Null Pointer Exception i Java?





Nullpeker unntaket i Java er et kjøretids unntak. I Java-verdenen tildeles en objektreferanse en spesiell nullverdi. Null Pointer Exception introduseres når et program prøver å bruke en objektreferanse, som har nullverdien. Som kan være:

hvordan du bruker sqlite-nettleseren
  • Å påkalle en bestemt metode fra et null-objekt.
  • For å få tilgang til eller endre feltet til et nullobjekt.
  • Ved å vurdere lengden på null, som om det var en matrise.
  • Mens du åpner eller endrer sporene til et null-objekt.
  • Kaster null som en kastbar verdi.
  • Prøver å synkronisere over et null-objekt.

Hvorfor trenger vi nullverdien?



Null er en unik verdi som brukes i Java. Null brukes til å vise at det ikke tilordnes noen verdi til en referansevariabel. Den primære anvendelsen av null ligger i implementering av datastrukturer som koblede lister og trær. Noen andre applikasjoner inkluderer nullobjektmønstre og singletonmønstre. Et singleton-mønster spesifiserer at bare en forekomst av en klasse kan initieres og har som mål å gi et globalt tilgangspunkt til objektet.

Den beste og enkle måten å lage minst en forekomst av en klasse er å erklære alle konstruktørene som private. Deretter lager de en offentlig metode som returnerer den unike forekomsten av klassen.

// For å bruke randomUUID-funksjonen. import java.util.UUID import java.io. * class Singleton {// Her initialiserer vi verdiene til single og ID til null. private static Singleton single = null private String ID = null private Singleton () {/ * Gjør det privat for å forhindre at det opprettes nye forekomster av Singleton-klassen. * / // Opprett en tilfeldig ID-ID = UUID.randomUUID (). ToString ()} offentlig statisk Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Offentlig klasse TestSingleton for driverkode {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Produksjon:



null-pointer

Ovennevnte eksempel er en statisk forekomst av singleton-klassen. Forekomsten initialiseres maksimalt en gang i Singleton get Instance-metoden.

binær til desimal omformer java

Hvordan unngå Null Pointer Exception i Java?

For å unngå Null Pointer Exception i Java, må vi sørge for at alle objektene er initialisert riktig før du bruker dem. Når en referansevariabel blir deklarert, må vi bekrefte at et objekt ikke er null og også Før vi ber om metoder eller felt fra objekter. Følgende er noen problemer med tilhørende løsninger for å løse dette problemet.

// program for å demonstrere påkalling av en metode // på null forårsaker NullPointerException import java.io. * klasse GFG {public static void main (String [] args) {// Initialisere strengvariabel med null verdi String ptr = null // Kontrollerer om ptr. Tilsvarer null eller fungerer bra. prøv {// Denne kodelinjen kaster NullPointerException // fordi ptr er null hvis (ptr.equals ('gfg')) System.out.print ('Same') ellers System.out.print ('Not Same')} fange (NullPointerException e) {System.out.print ('NullPointerException fanget')}}}

Produksjon:

Kontrollere argumentene til en metode

Husk alltid at før vi utfører kroppen til en ny metode, bør vi sikre argumentene for nullverdier og fortsette med utførelsen av metoden. Hvis og bare når argumentene er riktig sjekket. Ellers vil det kaste et 'IllegalArgumentException' og ringe ut anropsmetoden om at noe er galt med de godkjente argumentene.

// program for å sjekke om parametere er null eller ikke før // bruker dem. importer java.io. * klasse GFG {public static void main (String [] args) {// Streng s angi en tom streng og kaller getLength () String s = '' prøv {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException fanget')} // Streng s satt til en verdi og kaller getLength () s = 'GeeksforGeeks' prøv {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException fanget')} // Angi s som null og kaller getLength () s = null, prøv {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException fanget')}} // Funksjon for å returnere lengden på streng s. Det kaster // IllegalArgumentException hvis s er null. offentlig statisk int getLength (String s) {if (s == null) kast ny IllegalArgumentException ('Argumentet kan ikke være null') returner s.length ()}}

Produksjon:

Bruk av ternær operatør

En ternær operatør brukes til å unngå NullPointerException. Det boolske uttrykket er sjekket, og hvis uttrykket er sant, returneres verdien1, ellers returneres verdien2. Den ternære operatøren for håndtering av nullpekere kan brukes: Det rette bildet er den tilsvarende utgangen.

generere en tilfeldig streng java
// Et Java-program for å demonstrere at vi kan bruke // ternary operator for å unngå NullPointerException. importere java.io. * klasse GFG {public static void main (String [] args) {// Initialisere strengvariabel med nullverdi Streng str = null Strengmelding = (str == null)? '': str.substring (0,5) System.out.println (melding) str = 'Edureka_Java_Blog' melding = (str == null)? '': str.substring (0,5) System.out.println (melding)}}

Produksjon:

Edurek

Med dette kommer vi til slutten av Null Pointer Exception i Java. Jeg håper du fikk en ide om Null Pointer Exception.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'Null Pointer Exception in Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.