Nullpointerite erand Java-s: rakendamine ja näited



See artikkel annab teile üksikasjalikke ja põhjalikke teadmisi selle kohta, kuidas Null Pointer Exception Java-s töötab, koos paljude näidetega.

Koodi sujuva töötamise jaoks on vaja erandeid ja teavitage programmeerijaid lahendatavast veast. Selles artiklis keskendume Java'i Null Pointer Exceptionile järgmises järjekorras:

Mis on Java nullkursori erand?





Java nullkursori erand on käituse erand. Java maailmas omistatakse objektiviidele spetsiaalne nullväärtus. Nullkursori erand võetakse kasutusele, kui programm üritab kasutada objektiviidet, mille väärtus on null. Mis võib olla:

  • Teatud meetodi käivitamiseks nullobjektilt.
  • Nullobjekti väljale juurdepääsu saamiseks või selle muutmiseks.
  • Arvestades nullipikkust, nagu oleks see massiiv.
  • Nullobjekti pesadele juurde pääsemisel või nende muutmisel.
  • Nullviskamine nagu visatav väärtus.
  • Üritatakse nullobjekti kaudu sünkroonida.

Miks me vajame nullväärtust?



Null on Java-s kasutatav ainulaadne väärtus. Null näitab, et võrdlusmuutujale pole väärtust määratud. Nulli esmane rakendus seisneb andmestruktuuride nagu lingitud loendite ja puude rakendamises. Mõned muud rakendused hõlmavad nullmustermalle ja üksikmustreid. Üksikmuster täpsustab, et saab algatada ainult ühe klassi eksemplari ja selle eesmärk on pakkuda objektile globaalset juurdepääsupunkti.

Parim ja lihtne viis vähemalt ühe klassi eksemplari loomiseks on kõigi konstruktorite privaatseks kuulutamine. Seejärel loovad nad avaliku meetodi, mis tagastab klassi ainulaadse eksemplari.

// Funktsiooni randomUUID kasutamiseks. import java.util.UUID import java.io. * klass Singleton {// Siin lähtestame üksuse ja ID väärtused nulliks. privaatne staatiline Singletoni singel = null privaatstringi ID = null privaatne Singleton () {/ * Muutke see privaatseks, et vältida Singletoni klassi uute eksemplaride loomist. * / // Looge juhuslik ID ID = UUID.randomUUID (). ToString ()} public staatiline Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Draiveri kood avalik klass TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Väljund:



null-pointer

sortige teeki c ++

Ülaltoodud näide on singletoni klassi staatiline eksemplar. Eksemplar lähtestatakse maksimaalselt üks kord meetodis Singleton get instance.

kuidas iteraatorit kasutada

Kuidas vältida Null Pointer'i erandit Java-s?

Selleks, et vältida Java nulltähiste erandit, peame enne nende kasutamist veenduma, et kõik objektid on õigesti vormindatud. Kui võrdlusmuutuja deklareeritakse, peame kontrollima, kas objekt pole null ja Enne kui me objektidelt meetodeid või väljad küsime. Järgnevalt on toodud mõned probleemid selle vastavate lahendustega selle probleemi ületamiseks.

// programm meetodi esilekutsumise demonstreerimiseks nullil põhjustab NullPointerException impordi java.io. * klass GFG {public static void main (String [] args) {// Nullväärtusega stringimuutuja lähtestamine String ptr = null // Kontrollimine, kas ptr. võrdub nulliga või töötab hästi. proovige {// see koodirida viskab NullPointerException //, kuna ptr on null, kui (ptr.equals ('gfg')) System.out.print ('sama') muu System.out.print ('pole sama')} püüd (NullPointerException e) {System.out.print ('NullPointerException püütud')}}}

Väljund:

Meetodi argumentide kontrollimine

Pidage alati meeles, et enne uue meetodi keha käivitamist peaksime tagama selle argumendid nullväärtuste jaoks ja jätkama meetodi käivitamist. Kas ja ainult siis, kui argumendid on korralikult kontrollitud. Muidu viskab see “IllegalArgumentException” ja kutsub välja kutsumismeetodi, et edastatud argumentidega on midagi valesti.

// programm, et kontrollida, kas parameetrid on enne nende kasutamist nullid või mitte. import java.io. * klass GFG {public static void main (String [] args) {// String s määrab tühja stringi ja kutsub getLength () String s = '' proovige {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // String s on seatud väärtusele ja kutsub getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} saak (IllegalArgumentException e) {System.out.println ('IllegalArgumentException püütud')}} // s seadmine nulliks ja helistamine getLength () s = null proovige {System.out.println (getLength (s))}} püüd ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException püütud')}}} // Funktsioon stringi s pikkuse tagastamiseks. Kui s on null, viskab see // IllegalArgumentException. avalik staatiline int getLength (String s) {if (s == null) viska uus IllegalArgumentException ('Argument ei saa olla null') return s.length ()}}

Väljund:

java kood mysqliga ühenduse loomiseks

Kolmepoolse operaatori kasutamine

NullPointerExceptioni vältimiseks kasutatakse kolmekordset operaatorit. Boole'i ​​avaldis on kontrollitud ja kui avaldis on tõene, tagastatakse väärtus1, vastasel juhul tagastatakse väärtus2. Nullosutite käsitsemiseks saab kasutada kolmekordset operaatorit. Parem pilt on vastav väljund.

// Java-programm, et näidata, et NullPointerExceptioni vältimiseks saame kasutada // kolmekordset operaatorit. import java.io. * klass GFG {public static void main (String [] args) {// Nullväärtusega stringimuutuja lähtestamine String str = null Stringiteade = (str == null)? '': str.substring (0,5) System.out.println (sõnum) str = 'Edureka_Java_Blog' sõnum = (str == null)? '': str.substring (0,5) System.out.println (sõnum)}}

Väljund:

Edurek

Sellega jõuame Java-i Null Pointer Exceptioni lõppu. Loodan, et saite aimu Null Pointer Exceptionist.

Vaadake autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java-programmeerimises alustamine ja õpetada teid nii Java-põhiprogrammide kui ka täiustatud kontseptsioonide ning erinevate Java-raamistike jaoks, nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi “Null Pointer Exception in Java” kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.