Heim  >  Artikel  >  Java  >  Java NullPointerException

Java NullPointerException

王林
王林Original
2024-08-30 16:13:03897Durchsuche

NullPointer Exception ist eine Ausnahme in Java, die bei Programmierern sehr häufig auftritt. Es handelt sich um eine Laufzeitausnahme, die auftritt, wenn die Objektinstanziierung nicht ordnungsgemäß ist. Es wird deklariert, dass das Objekt einen Nullwert enthält. Die Nullzeiger-Ausnahme bedeutet lediglich, dass versucht wird, ein Objekt mit einer Referenz aufzurufen, die einen Nullwert enthält. Das Wichtigste, was Sie beachten sollten, ist, dass die Nullzeiger-Ausnahme nichts mit Zeigern zu tun hat, da die Java-Sprache das Zeigerkonzept nicht unterstützt. Vielmehr ist es mit Objektreferenzen verknüpft.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax:

Es gibt keine spezifische Syntax für die Nullzeiger-Ausnahme, die als Laufzeitfehler angegeben werden kann. es entsteht automatisch und wird für den Gebrauch sichtbar.

Eine Catch-Ausnahme kann deklariert und dann ausgelöst werden, um auf die NullPointer-Ausnahme hinzuweisen und sie zu debuggen. Das Debuggen für die NullPointerException ist sehr mühsam. Es muss sichergestellt werden, dass die Objektinstanziierung und Referenzdeklaration zum Zeitpunkt der Ausführung korrekt sind.

try {
Object obj1 = new Object(); // Instantiate a new object for the class as reference
Obj1=null; //Provide null value to the object created
Logging.log(String.format(“get the object value”, obj1.object1for reference));
}
catch(java.lang.NullPointerException exception)
{
Logging.log(exception);
}
catch(Throwable exception)
{
Logging.log(exception,false);
}

Wie funktioniert NullPointerException in Java?

NullPointerException in Java ist eine Ausnahme, die für einen Entwickler überhaupt kein wünschenswerter Fehler ist. Es ist sehr schwierig, die Ausnahme zu finden, da sie jedes Mal zur Laufzeit auftritt. Daher ist das Finden einer solchen Ausnahme eine mühsame Aufgabe. Es dauert Stunden, bis die Programmierer die NullPointerException herausfinden.

Es entsteht, wenn ein ungewöhnlicher Versuch unternommen wird, das mit der Null definierte Objekt irgendwo zuzuweisen, wenn ein Objekt für etwas anderes benötigt wird. Alle Java-Fehler, einschließlich NullPointerException, treten aus bestimmten Gründen auf, wie zum Beispiel:

  • Immer wenn java.lang.the throwable interface deklariert wird, löst es alle möglichen Java-Fehler aus und wird durch die geerbte Klasse weiter erweitert.
  • lang.Exception erbt dann von java.lang.throwable.
  • lang.throwable-Klasse erweitert die java.lang.Exception.
  • Auch Java.lang.RuntimeException tritt aufgrund dieser geerbten Klasse auf.
  • Schließlich wird java.lang.NullPointerException von der Klasse java.lang.RuntimeException geerbt.

Da klar erwähnt und ersichtlich ist, dass die NullPointerException von der java.lang.RuntimeException geerbt wird, tritt dieses Problem immer dann auf, wenn zum Zeitpunkt der Kompilierung und Ausführung der Anwendung eine Ausführung der Anwendung stattfindet. Wenn außerdem versucht wird, direkt auf ein Feld, eine Methode oder die falsche Referenz des Objekts zum Zeitpunkt der Instanziierung zuzugreifen, ist es unbedingt erforderlich, die java.lang.NullPointerException auszulösen. Das Hinzufügen von Loggern, das anschließende Erstellen eines weiteren Dummy-Objekts und das anschließende Aufrufen der Instanz der Methode des nullzugewiesenen Objekts hilft auch beim ordnungsgemäßen Debuggen des Codes und beim Finden der Grundursache der NullPointerException und der Zeilen, die auf den Fehler und die Ausnahme verweisen. Daher handelt es sich um eine sehr konventionelle Methode zur Fehlerbehebung und zum Debuggen, um den Java-Fehler zu verstehen, der in einer bestimmten Zeile auftritt.

Konstruktoren von Java NullPointerException

Mit der Methode der NullPointerException sind bestimmte spezifische Konstruktoren definiert und deklariert, die wie folgt lauten:

1. NullPointerException()

Dieser Konstruktor wird verwendet, um eine NullPointerException ohne detaillierte Meldung oder Erklärung zu erstellen. Es kann als leere oder Null-Ausnahme betrachtet werden, die gemäß der Anforderung nicht so sehr empfohlen wird.

2. NullPointerException(String s)

Dieser Konstruktor verhält sich im Widerspruch zur NullPointerException(), da er einen Teil der detaillierten Meldung enthält, die an der angegebenen Stelle verursacht wird, und das Argument einbezieht, das zum Zeitpunkt der Erstellung einer Nullzeigerausnahme verwendet werden kann. Das Argument String s ist für die Erstellung der Nullzeiger-Ausnahme mit der detaillierten Meldung verantwortlich.

Beispiele zur Implementierung von Java NullPointerException

Unten finden Sie Beispiele für Java NullPointerException:

Beispiel #1

Dieses Programm wird verwendet, um den Aufruf der ungültigen Methode zum Zeitpunkt der Ausführung zu demonstrieren, der zu einer NullPointerException führt, was nicht erforderlich ist.

Code:

public class Null_Pointer_Excptn {
public static void main(String[] args) {
String strng = null;
try
{
if (strng.equals("monkey"))
System.out.println("Let us take a value which needs to be similar");
else
System.out.println("Otherwise it will not take a similar and equal value.");
}
catch(NullPointerException e)
{
System.out.println("It is a need to catch the null pointer exception.");
}
}
}

Ausgabe:

Java NullPointerException

Beispiel #2

Dieses Programm veranschaulicht das Java-Programm, das die Erstellung einer NullPointerException vermeidet, da es sich nicht um eine herkömmliche Methode handelt.

Code:

public class Null_Pointer_Excptn_Avoid {
public static void main(String[] args) {
String strng2 = null;
try
{
if ("avoid_null".equals(strng2))
System.out.println("Coming out to be equal");
else
System.out.println("It is not at all coming out to be equal");
}
catch(NullPointerException e)
{
System.out.println("Catch the null pointer Exception to get a clarification.");
}
}
}

Ausgabe:

Java NullPointerException

Example #3

This program illustrates that the NullPointerException can be avoided using the proper object verification before initialization.

Code:

public class Good_Null_Pntr_Excpn {
public static void main(String[] args) {
String store = "Learning";
try
{
System.out.println(getLength(store));
}
catch(IllegalArgumentException e)
{
System.out.println("Need to catch the definition of illegalArgument.");
}
store = "Educba";
try
{
System.out.println(getLength(store));
}
catch(IllegalArgumentException e)
{
System.out.println("Need to catch the definition of illegalArgument.");
}
store = null;
try
{
System.out.println(getLength(store));
}
catch(IllegalArgumentException e)
{
System.out.println("Need to catch the definition of illegalArgument.");
}
}
public static int getLength(String store)
{
if (store == null)
throw new IllegalArgumentException("Need to catch the definition of illegalArgument.");
return store.length();
}
}

Output:

Java NullPointerException

How to Avoid NullPointerException?

As it is not a good practice to get NullPointerException as it makes the entire codebase cumbersome and consumes time for the programmers to figure out the root cause of the NullPointerException.

Therefore, it is very much needed to avoid these exceptions which can make sure using the following ways:

  • By comparing a string with the literals.
  • By keeping a check on the passed arguments or parameters being passed from the method.
  • By making use of the ternary operator.

Conclusion

Java NullPointerException is an exception which is not a good option and is recommended not to occur as it consumes a lot of time. Debugging and troubleshooting become difficult; therefore, it must keep in mind that before the initialization of the object, the reference of the object must be proper. Therefore, the reference of the object’s null value should be proper, and then it can be avoided.

Das obige ist der detaillierte Inhalt vonJava NullPointerException. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:BinarySearch() in JavaNächster Artikel:BinarySearch() in Java