Tyhjä osoitinpoikkeus Java: toteutus ja esimerkkejä



Tämä artikkeli antaa sinulle yksityiskohtaisen ja kattavan tiedon siitä, kuinka Null Pointer Exception toimii Java-ohjelmassa, runsaalla esimerkillä.

Poikkeuksia tarvitaan koodin sujuvaan suorittamiseen ja ilmoittaakseen ohjelmoijille ratkaistavan virheen. Tässä artikkelissa keskitymme Null Pointer Exception Java -ohjelmaan seuraavassa järjestyksessä:

Mikä on Null Pointer Exception Java?





Navaosoittimen nollapoikkeus on ajonaikainen poikkeus. Java-maailmassa objektiviitteelle annetaan erityinen nolla-arvo. Nollaosoittimen poikkeus otetaan käyttöön, kun ohjelma yrittää käyttää objektiviittausta, jolla on nolla-arvo. Mikä voi olla:

on vs on java
  • Tietyn menetelmän kutsuminen nollakohteesta.
  • Nollakohteen kentän käyttäminen tai muokkaaminen.
  • Kun otetaan huomioon nollan pituus, ikään kuin se olisi matriisi.
  • Kun käytät tai muokkaat tyhjän objektin paikkoja.
  • Heitto null kuin heitettävä arvo.
  • Yritetään synkronoida nollaobjektin yli.

Miksi tarvitsemme nolla-arvon?



Null on ainutlaatuinen arvo, jota käytetään Javassa. Nullia käytetään osoittamaan, että viitemuuttujalle ei ole määritetty arvoa. Ensisijainen null-sovellus on tietorakenteiden, kuten linkitettyjen luetteloiden ja puiden, toteuttamisessa. Jotkut muut sovellukset sisältävät nollan objektikuvioita ja yksittäisiä malleja. Yksittäinen malli määrittelee, että vain yksi luokan esiintymä voidaan aloittaa, ja sen tarkoituksena on tarjota maailmanlaajuinen pääsy kohteeseen.

Paras ja yksinkertainen tapa luoda ainakin yksi luokan esiintymä on julistaa kaikki rakentajat yksityisiksi. Sitten he luovat julkisen menetelmän, joka palauttaa luokan ainutlaatuisen esiintymän.

// Jos haluat käyttää randomUUID-toimintoa. import java.util.UUID import java.io. * class Singleton {// Tässä alustetaan single- ja ID-arvot nolliksi. yksityinen staattinen Singleton single = null yksityinen merkkijono ID = null yksityinen Singleton () {/ * Tee se yksityiseksi, jotta vältetään uusien Singleton-luokan esiintymien luominen. * / // Luo satunnainen tunnus ID = UUID.randomUUID (). ToString ()} julkinen staattinen Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // ajurikoodi public class TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Tuotos:



null-pointer

Yllä oleva esimerkki on singleton-luokan staattinen esiintymä. Esimerkki alustetaan korkeintaan kerran Singleton get -menetelmän sisällä.

kuinka käyttää iteraattoria

Kuinka välttää Null Pointer -poikkeus Java-ohjelmassa?

Jotta vältetään Null Pointer -poikkeus Java-ohjelmassa, meidän on varmistettava, että kaikki objektit on alustettu oikein, ennen kuin käytät niitä. Kun viitemuuttuja ilmoitetaan, meidän on varmistettava, että objekti ei ole nolla ja ennen kuin pyydämme menetelmiä tai kenttiä objekteilta. Seuraavassa on joitain ongelmia vastaavilla ratkaisuilla ongelman voittamiseksi.

// ohjelma, jolla osoitetaan menetelmän vetoaminen // nollalle aiheuttaa NullPointerException-tuonnin java.io. * luokka GFG {public static void main (String [] args) {// Initializing String muuttuja nolla-arvolla String ptr = null // Tarkistetaan, onko ptr.arvo nolla vai toimiiko se hyvin. kokeile {// Tämä koodirivi heittää NullPointerException //: n, koska ptr on tyhjä, jos (ptr.equals ('gfg')) System.out.print ('Sama') else System.out.print ('Ei sama')} catch (NullPointerException e) {System.out.print ('NullPointerException kiinni')}}}

Tuotos:

Menetelmän argumenttien tarkistaminen

Muista aina, että ennen uuden menetelmän rungon suorittamista meidän on varmistettava sen argumentit nolla-arvojen puolesta ja jatkettava menetelmän suorittamista. Jos ja vain, kun argumentit on tarkistettu oikein. Muuten se heittää 'IllegalArgumentException' ja kutsuu kutsumenetelmän, että välitetyissä argumenteissa on jotain vikaa.

// ohjelma tarkistaa, ovatko parametrit nollia, ennen kuin // niitä käytetään. tuo java.io. * luokka GFG {public static void main (String [] args) {// String s asettaa tyhjän merkkijonon ja kutsuu getLength () String s = '' kokeile {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // Merkkijonot on asetettu arvoon ja kutsuvat getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // Asettamalla s tyhjäksi ja kutsumalla getLength () s = null yritä {System.out.println (getLength (s))}} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}}} // Toiminto palauttaa merkkijonojen pituuden. Se heittää // IllegalArgumentException, jos s on nolla. public static int getLength (String s) {if (s == null) heittää uuden IllegalArgumentException ('Argumentti ei voi olla tyhjä') return s.length ()}}

Tuotos:

Ternary Operaattorin käyttö

Kolmen operaattorin avulla vältetään NullPointerException. Boolen lauseke tarkistetaan ja jos lauseke on totta, arvo1 palautetaan, muuten arvo2 palautetaan. Voidaan käyttää kolmoisoperaattoria nollaosoittimien käsittelyyn: Oikea kuva on vastaava lähtö.

// Java-ohjelma osoittaaksemme, että voimme käyttää // kolminkertaista operaattoria välttääksemme NullPointerExceptionin. tuo java.io. * luokka GFG {public static void main (String [] args) {// Alustetaan merkkijonomuuttuja nolla-arvolla String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (viesti) str = 'Edureka_Java_Blog' viesti = (str == null)? '': str.substring (0,5) System.out.println (viesti)}}

Tuotos:

Edurek

Tämän avulla olemme päässeet Java-sovelluksen Null Pointer Exceptionin loppuun. Toivon, että sait käsityksen Null Pointer Exceptionista.

mikä on kehys javassa

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän 'Null Pointer Exception in Java' -blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.