Haben Sie java.lang.NullPointerException (NPE) bemerkt? 8 Best Practices zur Vermeidung von Laufzeit-NPE in Java

Veröffentlicht: 2020-10-07
Haben Sie java.lang.NullPointerException (NPE) bemerkt? 8 Best Practices zur Vermeidung von Laufzeit-NPE in Java

Vermeidung von Null-Zeiger-Ausnahmen in Java und Java-Tipps und Best Practices zur Vermeidung von Null-Zeiger-Ausnahmen in Java.

Ich bin mir sicher, dass Sie als Java-Entwickler ab dem ersten Tag mit Null Pointer Exception (NPE) konfrontiert waren. In den meisten Fällen zeigt die NPE-Ausnahme einen klaren Stack-Trace, der die Grundursache derselben festlegt, aber im Falle einer großen Anwendung auf Unternehmensebene, in der Sie Hunderte von Klassen haben, wird es zum Albtraum, die wahre Grundursache herauszufinden.

Was ist eine Null-Zeiger-Ausnahme (NPE)?

NullPointerException (NPE) ist eine Ausnahme, die auftritt, wenn Sie versuchen, einen Verweis zu verwenden, der auf keinen Speicherort (Null) zeigt, als würde er auf ein Objekt verweisen.

Das Aufrufen einer Methode für eine null oder der Versuch, auf ein Feld einer Nullreferenz zuzugreifen, löst eine NPE aus. Dies ist die häufigste Ursache.

Gemäß JavaDoc sind im Folgenden die Hauptursachen für NPE aufgeführt:

  • Wirft null , als wäre es ein Throwable Wert.
  • Aufrufen der Instanzmethode eines null .
  • Zugreifen auf oder Ändern des Felds eines null .
  • Nimmt die Länge von null , als wäre es ein Array.
  • Zugreifen auf oder Ändern der Slots von null , als wäre es ein Array.

Jetzt ist die eigentliche Frage, wie man java.lang.NullPointerException zur Laufzeit vermeidet? In diesem Tutorial sehen wir uns einige Beispiele an, die NPE zur Laufzeit erstellen, und Schritte, die wir ausführen müssen, um dies zu beheben.

Lassen Sie uns zuerst NPE zur Laufzeit erstellen. Sehen Sie sich das folgende Beispiel CrunchifyNullPointerExceptionTips.java an

Wir werden NPE auf 3 verschiedene Arten erstellen

  1. NPE wird ausgelöst, wenn Sie versuchen, auf ein Nullobjekt zuzugreifen
  2. NPE wird ausgelöst, wenn Sie versuchen, einen Null-String zu konvertieren
  3. NPE wird ausgelöst, wenn Sie versuchen, während der Klasseninitialisierung auf null Object zuzugreifen

Erstellen Sie die Klasse CrunchifyNullPointerExceptionTips.java

Ergebnis:

Nun, es gibt einige Tipps und Tricks, mit denen wir NullPointerException zur Laufzeit vermeiden können. Lass uns einen Blick darauf werfen.

Tipp 1:

Eclipse/IntelliJ IDE versucht, NPE im Arbeitsbereich anzuzeigen. Korrigieren Sie Ihren Code nur während der Entwicklung.

Nullzeiger-Hinweis in Eclipse

Tipp 2:

Fügen Sie crunchifyI sNullorEmpty () -Prüfung vor einer Operation für ein Objekt hinzu. Fügen Sie dies zu CrunchifyNullPointerExceptionTips.java

Im obigen Java-Programm werden die Zeilen 55 und 56 dadurch ersetzt.

Tipp 3:

Prüfen Sie, ob String nach der Operation trim() null oder leer ist.

Tipp 4:

Verwenden Sie immer den Try Catch block , um einen ununterbrochenen Runtime-Prozess zu verhindern.

Tipp 5:

Collections.emptyList() wird aufgrund der besseren Handhabung von Generika bevorzugt.

Tipp 6:

Verwenden Sie Java Assertions

Eine Assertion ist eine Aussage, die es Ihnen ermöglicht, Ihre Annahmen über Ihren Code zu testen. Wenn Sie beispielsweise eine Methode schreiben, die den Namen im System zurückgibt, können Sie behaupten, dass der zurückgegebene otherName if String null ist.

Die grundlegende Verwendung von Behauptungen wäre:

Aber es gibt einen Haken: Assertion ist in der Produktionsumgebung nicht verfügbar und wir sollten Assertion nicht mit irgendeiner Geschäftslogik verwenden.

Tipp 7:

Versuchen Sie, containsKey() , containsValue() , contains() Prüfungen zu verwenden.

Tipp 8:

Zusammenfassend ist es immer eine gute Praxis, sich während der Entwicklung um NPE zu kümmern, anstatt zur Laufzeit in der Produktion zu debuggen. Es gibt eine Reihe weiterer Tipps und Tricks, die Spring Framework Annotation, Factory Pattern , Null Object Pattern usw. verwenden. Aber ich werde es jetzt kurz machen.

Wird wahrscheinlich in einer Woche ein neues Tutorial zu diesem Thema veröffentlichen. Bleib dran.

Möchten Sie etwas zu diesem Tutorial hinzufügen ODER ein Problem gefunden haben, melden Sie sich bitte und geben Sie Ihre Kommentare ab.