Izjema Null Pointer v Javi: izvedba in primeri



V tem članku boste našli podrobno in celovito znanje o tem, kako Null Pointer Exception deluje v Javi s številnimi primeri.

Za gladko izvajanje kode so potrebne izjeme, ki programerjem sporočijo napako, ki jo je treba odpraviti. V tem članku se bomo osredotočili na izjemo Null Pointer v Javi v naslednjem vrstnem redu:

Kaj je izjema Null Pointer v Javi?





Izjema ničelnega kazalca v Javi je izjema med izvajanjem. V svetu Jave je referenčni vrednosti predmeta dodeljena posebna ničelna vrednost. Izjema Null Pointer se uvede, ko program poskuša uporabiti referenco predmeta, ki ima vrednost null. Kar je lahko:

  • Klicanje določene metode iz ničelnega predmeta.
  • Za dostop ali spreminjanje polja ničelnega predmeta.
  • Z upoštevanjem dolžine null, kot da bi šlo za matriko.
  • Med dostopom ali spreminjanjem rež ničelnega predmeta.
  • Nič vrže kot vrednost, ki jo je mogoče vrniti.
  • Poskus sinhronizacije nad ničelnim predmetom.

Zakaj potrebujemo ničelno vrednost?



Null je edinstvena vrednost, ki se uporablja v Javi. Null se uporablja za prikaz, da referenčni spremenljivki ni dodeljena nobena vrednost. Primarna uporaba nič je v izvajanju podatkovnih struktur, kot so povezani seznami in drevesa. Nekatere druge aplikacije vključujejo vzorce ničelnih predmetov in enojne vzorce. Enotni vzorec določa, da je mogoče sprožiti samo en primerek razreda in je namenjen zagotavljanju globalne točke dostopa do predmeta.

Najboljši in preprost način za ustvarjanje vsaj enega primerka razreda je razglasitev vseh konstruktorjev kot zasebnih. Nato ustvarijo javno metodo, ki vrne unikatni primerek razreda.

// Za uporabo funkcije randomUUID. import java.util.UUID import java.io. * class Singleton {// Tu inicializiramo vrednosti single in ID na null. private static Singleton single = null private String ID = null private Singleton () {/ * Naj bo zaseben, da se prepreči ustvarjanje novih primerkov razreda Singleton. * / // Ustvari naključni ID ID = UUID.randomUUID (). ToString ()} javni statični Singleton getInstance () {if (single == null) single = new Singleton () return single} javni niz getID () {return this.ID}} // javni razred TestSingleton {class static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Izhod:



null-pointer

kaj math.abs počne v javi

Zgornji primer je statični primerek razreda singleton. Primerek se inicializira največ enkrat znotraj metode Singleton get Instance.

java casting double to int

Kako se izogniti izjemi Null Pointer v Javi?

Da bi se izognili izjemi Null Pointer v Javi, moramo poskrbeti, da so vsi predmeti pravilno inicializirani, preden jih uporabite. Ko je referenčna spremenljivka deklarirana, moramo preveriti, ali objekt ni nulen, in tudi preden od predmetov zahtevamo metode ali polja. Sledi nekaj težav z ustreznimi rešitvami za odpravo te težave.

// program za prikaz klica metode // na null povzroči NullPointerException import java.io. * class GFG {public static void main (String [] args) {// Inicializacija spremenljivke String z ničelno vrednost String ptr = null // Preverjanje, ali je ptr.equals null ali deluje v redu. poskusite {// Ta vrstica kode vrže NullPointerException //, ker je ptr ničen, če (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Izhod:

Vodenje preverjanja argumentov metode

Vedno si zapomnite, da moramo pred izvajanjem telesa nove metode zagotoviti njene argumente za ničelne vrednosti in nadaljevati z izvajanjem metode. Če in samo, če so argumenti pravilno preverjeni. V nasprotnem primeru bo vrgel »IllegalArgumentException« in poklical klicno metodo, da je s posredovanimi argumenti nekaj narobe.

// program za preverjanje, ali so parametri nič pred ali pred njihovo uporabo. import java.io. * class GFG {public static void main (String [] args) {// String s nastavi prazen niz in kliče getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Niz je nastavljen na vrednost in kliče getLength () s = 'GeeksforGeeks' poskusite {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Nastavitev s kot null in klic getLength () s = null try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException ujet')}} // Funkcija za vrnitev dolžine niza s. Vrže // IllegalArgumentException, če je s nič. public static int getLength (String s) {if (s == null) vrže novo IllegalArgumentException ('Argument ne sme biti nič') return s.length ()}}

Izhod:

Uporaba ternarnega operaterja

Za izogibanje NullPointerException se uporablja ternarni operator. Logični izraz je preverjen in če je izraz true, se vrne vrednost1, sicer pa vrednost2. Uporabi se lahko ternarni operator za obdelavo ničelnih kazalcev: desna slika je ustrezen izhod.

// Java program, ki dokazuje, da lahko z uporabo ternarnega operaterja // preprečimo NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// Inicializacija spremenljivke String z nično vrednostjo String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (sporočilo) str = 'Edureka_Java_Blog' sporočilo = (str == null)? '': str.substring (0,5) System.out.println (sporočilo)}}

Izhod:

Edurek

S tem smo prišli do konca Null Pointer Exception v Javi. Upam, da imate idejo o Null Pointer Exception.

Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam omogoči uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring

ruby on rails trg dela

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika »Null Pointer Exception in Java« in kmalu se vam bomo oglasili.