Ați observat java.lang.NullPointerException (NPE)? 8 Cele mai bune practici pentru a evita runtime NPE în Java

Publicat: 2020-10-07
Ați observat java.lang.NullPointerException (NPE)? 8 Cele mai bune practici pentru a evita runtime NPE în Java

Evitați excepția Null Pointer în Java și Java Sfaturi și cele mai bune practici pentru a evita NullPointerException în Java.

În calitate de dezvoltator Java, sunt sigur că trebuie să te-ai confruntat cu excepția Null Pointer (NPE) începând cu prima zi. În majoritatea cazurilor, excepția NPE arată o urmă clară a stivei care indică cauza principală a aceleiași, dar în cazul unei aplicații mari la nivel de întreprindere în care aveți sute de clase, devine un coșmar să aflați cauza principală reală.

Ce este Null Pointer Exception (NPE)?

NullPointerException (NPE) este o excepție care apare atunci când încercați să utilizați o referință care nu indică nicio locație din memorie (null) ca și cum ar face referire la un obiect.

Apelarea unei metode pe o referință null sau încercarea de a accesa un câmp al unei referințe nule va declanșa un NPE. Aceasta este cauza cea mai frecventă.

Conform JavaDoc, mai jos sunt cauzele majore pentru NPE:

  • Aruncarea null ca și cum ar fi o valoare Throwable .
  • Apelarea metodei de instanță a unui obiect null .
  • Accesarea sau modificarea câmpului unui obiect null .
  • Luând lungimea null ca și cum ar fi o matrice.
  • Accesarea sau modificarea sloturilor de null ca și cum ar fi o matrice.

Acum întrebarea reală este Cum să evitați java.lang.NullPointerException în timpul execuției? În acest tutorial vom analiza câteva exemple care creează NPE în timpul execuției și pașii pe care trebuie să îi efectuăm pentru a rezolva acest lucru.

Să creăm NPE la runtime 1st. Aruncă o privire la exemplul de mai jos CrunchifyNullPointerExceptionTips.java

Vom crea NPE 3 moduri diferite

  1. NPE va fi aruncat dacă încercați să accesați obiectul nul
  2. NPE va fi aruncat dacă încercați să convertiți șirul nul
  3. NPE va fi aruncat dacă încercați să accesați obiectul nul în timpul inițializării clasei

Creați clasa CrunchifyNullPointerExceptionTips.java

Rezultat:

Ei bine, există câteva sfaturi și trucuri pe care le-am putea folosi pentru a evita NullPointerException în timpul execuției. Hai să aruncăm o privire.

Sfat 1:

Eclipse / IntelliJ IDE va ​​încerca să arate NPE în spațiul de lucru. Corectați codul numai în timpul dezvoltării.

Indiciu pentru indicatorul nul în Eclipse

Sfat 2:

Adăugați crunchifyI sNullorEmpty () înainte de o operație pe obiect. Adăugați acest lucru la CrunchifyNullPointerExceptionTips.java

În mai sus, liniile de program java 55 și 56 vor fi înlocuite cu aceasta.

Sfat 3:

Verificați dacă String este null sau gol după operația trim().

Sfat 4:

Utilizați întotdeauna Try Catch block pentru a preveni procesul de rulare neîntrerupt.

Sfat 5:

Collections.emptyList() este preferat datorită unei mai bune manipulări a genericelor.

Sfat 6:

Utilizați Java Assertions

O afirmație este o declarație care vă permite să vă testați presupunerile despre codul dvs. De exemplu, dacă scrieți o metodă care returnează numele în sistem, puteți afirma că returnarea otherName dacă String este nulă.

Utilizarea de bază a aserțiilor ar fi:

Dar există o captură: Assertion nu este disponibil în mediul de producție și nu ar trebui să folosim Assertion cu nicio logică de afaceri.

Sfat 7:

Încercați să utilizați verificări containsKey() , containsValue() , contains() .

Sfat 8:

Ca o concluzie, este întotdeauna o practică bună să aveți grijă de NPE în timpul dezvoltării, mai degrabă depanarea în producție în timpul execuției. Există o serie de alte sfaturi și trucuri disponibile folosind Spring Framework Annotation, Factory Pattern , Null Object Pattern etc. Dar voi scurta acest lucru acum.

Voi publica un nou tutorial probabil peste o săptămână despre acesta. Rămâneți aproape.

Doriți să adăugați ceva la acest tutorial SAU ați găsit o problemă, vă rugăm să sunați și să furnizați comentariile dvs.