Null rādītāja izņēmums Java: ieviešana un piemēri



Šis raksts sniegs jums detalizētas un visaptverošas zināšanas par to, kā Null Pointer Exception darbojas Java, izmantojot daudz piemēru.

Nepieciešami izņēmumi, lai kods darbotos vienmērīgi un lai programmētāji uzzinātu, kāda kļūda ir jāatrisina. Šajā rakstā mēs koncentrēsimies uz Null Pointer Exception Java šādā secībā:

Kas ir Null Pointer Exception Java?





Nulles rādītāja izņēmums Java ir izpildlaika izņēmums. Java pasaulē objekta atsaucei tiek piešķirta īpaša nulles vērtība. Null rādītāja izņēmums tiek ieviests, kad programma mēģina izmantot objekta atsauci, kurai ir nulles vērtība. Kas var būt:

  • Lai izsauktu noteiktu metodi no nulles objekta.
  • Lai piekļūtu nulles objekta laukam vai mainītu to.
  • Ņemot vērā nulles garumu, it kā tas būtu masīvs.
  • Piekļūstot vai modificējot nulles objekta slotus.
  • Mest null kā izmetamu vērtību.
  • Mēģina sinhronizēt pa nulles objektu.

Kāpēc mums vajag nulles vērtību?



Null ir unikāla vērtība, ko izmanto Java. Null tiek izmantots, lai parādītu, ka atsauces mainīgajam nav piešķirta vērtība. Primārais nulles pielietojums ir datu struktūru, piemēram, saistīto sarakstu un koku, ieviešana. Dažas citas lietojumprogrammas ietver nulles objektu modeļus un atsevišķus modeļus. Vienskaitļa modelis norāda, ka var ierosināt tikai vienu klases gadījumu, un tā mērķis ir nodrošināt globālu piekļuves punktu objektam.

Labākais un vienkāršākais veids, kā izveidot vismaz vienu klases gadījumu, ir pasludināt visus konstruktorus par privātiem. Tad viņi izveido publisku metodi, kas atgriež klases unikālo gadījumu.

// Lai izmantotu randomUUID funkciju. importēt java.util.UUID importēt java.io. * klasi Singleton {// Šeit mēs inicializējam viena un ID vērtības uz nulli. private static Singleton single = null privāta virkne ID = null private Singleton () {/ * Padariet to par privātu, lai novērstu jaunu Singleton klases eksemplāru izveidi. * / // Izveidojiet izlases ID ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Vadītāja koda publiskā klase TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Izeja:



null-pointer

apache spark vs hadoop mapreduce

Iepriekš minētais piemērs ir vienvietīgas klases statisks gadījums. Gadījums tiek inicializēts ne vairāk kā Singleton get instance metodē.

atšķirība starp galīgo un galīgo

Kā izvairīties no Null Pointer izņēmuma Java?

Lai izvairītos no Null Pointer izņēmuma Java, mums pirms to izmantošanas jāpārliecinās, vai visi objekti ir pareizi inicializēti. Kad tiek deklarēts atsauces mainīgais, mums jāpārbauda, ​​vai objekts nav nulle un Pirms mēs pieprasām no objektiem metodes vai laukus. Tālāk ir norādītas dažas problēmas ar atbilstošajiem risinājumiem, lai pārvarētu šo problēmu.

// programma, lai parādītu metodes izsaukšanu // on null izraisa NullPointerException importu java.io. * klase GFG {public static void main (String [] args) {// String mainīgā inicializēšana ar nulles vērtību String ptr = null // Pārbauda, ​​vai ptr.val null vai darbojas labi. mēģiniet {// Šī koda rindiņa met NullPointerException //, jo ptr nav derīgs, ja (ptr.equals ('gfg')) System.out.print ('Same') cits System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Izeja:

Metodes argumentu pārbaude

Vienmēr atcerieties, ka pirms jaunas metodes pamatteksta izpildīšanas mums jānodrošina tā argumenti par nulles vērtībām un jāturpina metodes izpilde. Tikai tad, kad argumenti ir pareizi pārbaudīti. Citādi tas metīs “IllegalArgumentException” un izsauks izsaukšanas metodi, ka kaut kas nav kārtībā ar nodotajiem argumentiem.

// programma, lai pārbaudītu, vai parametri ir nulle vai nav, pirms tos // izmanto. importēt java.io. * klasi GFG {public static void main (String [] args) {// String s iestata tukšu virkni un izsauc getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // String s ir iestatīta uz vērtību un izsauc getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // Iestatot s kā nulli un izsaucot getLength () s = null, mēģiniet {System.out.println (getLength (s))}} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException notverts')}}} // Funkcija, lai atgrieztu virknes s garumu. Tas met // IllegalArgumentException, ja s ir nulle. public static int getLength (String s) {if (s == null) mest jaunu IllegalArgumentException ('Arguments nevar būt nulle') return s.length ()}}

Izeja:

Ternārā operatora izmantošana

Lai izvairītos no NullPointerException, tiek izmantots trīslīmeņu operators. Būla izteiksme tiek pārbaudīta, un, ja izteiksme ir patiesa, tiek atgriezta vērtība1, pretējā gadījumā tiek atgriezta vērtība2. Var izmantot trīslīmeņu operatoru, lai apstrādātu nulles rādītājus. Pareizais attēls ir atbilstošā izeja.

// Java programma, lai parādītu, ka mēs varam izmantot // trīslīmeņu operatoru, lai izvairītos no NullPointerException. importēt java.io. * klasi GFG {public static void main (String [] args) {// Inicializē virknes mainīgo ar nulles vērtību String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (ziņojums) str = 'Edureka_Java_Blog' ziņojums = (str == null)? '': str.substring (0,5) System.out.println (ziņojums)}}

Izeja:

java cilpu programmu piemēriem

Edureks

Ar to mēs esam nonākuši līdz Java Null Pointer Exception izņēmumam. Es ceru, ka jums radās ideja par Null Pointer Exception.

Pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji. Kurss ir paredzēts, lai dotu jums sākumu Java programmēšanā un apmācītu gan Java, gan uzlabotas koncepcijas, kā arī dažādas Java struktūras, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “Null Pointer Exception in Java” komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.