Fälle, in denen java.lang.nullpointerexception ausgelöst wird
Wir haben diesen Fehler oft in unseren Programmen. java.lang.NullPointerException. Dieser Fehler wird gestartet, wenn Sie versuchen, ein Null-Objekt zu verwenden, das in den folgenden Fällen keinen Wert hat:- Rufen Sie eine Null-Methodeninstanz auf.
- Greifen Sie auf die Instanz eines Null-Objekts zu oder ändern Sie sie.
- Die Ausnahme soll auslösen.
- Beim Aufrufen der Länge des Null-Arrays. li>
- Beim Zugriff auf Null-Positionen wie z.B. einem Array.
- Beim Synchronisieren eines Null-Objekts oder bei dessen Verwendung innerhalb eines synchronisierten Blocks.
Objekte werden durch Zeiger in java
Ein Objekt ist eine Klasseninstanz oder ein Array, Referenzen sind Zeiger auf diese Objekte und eine Nullreferenz ist Bezieht sich auf kein Objekt.Wenn Sie eine Variable deklarieren, setzt Java die x-Variable auf 0 und es wird ein Zeiger erstellt, der auf dieses Objekt verweist. Im folgenden Code deklarieren wir beispielsweise eine Variable x:
int x;In diesem Beispiel wird die Variable x standardmäßig auf Null gesetzt, und die zweite Zeile, der Wert 5, wird an den Speicherort geschrieben, auf den x zeigt. Java verbietet dem Programmierer, Speicherboxen zu manipulieren, es gibt Ihnen nur Zugriff auf die Methoden des Objekts und nicht auf den Speicherort.
x = 5;
Fälle oder NullPointerException wird geworfen
1) Rufen Sie eine Methode einer nullPoint dot = null;
dot.getX();
Ausnahme im Thread "main" java.lang.NullPointerException2) Zugriff auf oder Änderung der Instanz eines Nullobjekts.
at Test.main(Test.java:27)
Punkt Punkt = null;
dot.getX();
Ausnahme im Thread "main" java.lang.NullPointerException3) Bei Verwendung von throw null
bei Test.main(Test.java:38)
throw überprüft, ob das Argument ungleich null ist, und wenn es Null ist, steigt es NullPointerException.
IOException nullException = null;
try {
throw nullException;
} catch (IOException e) {
e.printStackTrace();
}
char[] ch = null;5) Beim Zugriff auf Null-Speicherorte wie array
int Länge = Länge der Kanäle;
Ein Beispiel ist der Zugriff auf die Boxen eines null.
char[] ch = null;
Zeichen c = ch[0];
6) Beim Synchronisieren eines null
Sie erhalten NullPointerException Wenn Sie versuchen, ein Objekt zu synchronisieren null oder es in einen synchronisierten Block einfügen.
Thread th=null;
synchronized(th){
System.out.print("Dieser Thread ist synchronisiert");
}
Was sind die Präventionen
- Der beste Weg, um diese Art von Ausnahme zu vermeiden Falls Sie das Objekt nicht selbst erstellt haben ist zu prüfen, ob das Objekt Null ist. Der Code sollte wie folgt geschrieben werden:
void display(String phrase){Diese Lösung ist in einigen Fällen nicht optimal, da das Objekt null ist, sodass in der display()-Prozedur nichts passiert.
//check if sentence is not null
if(phrase!=null)
System.out.print(phrase);
}
String string="";
//Declaration
Thread[] th=new Thread[3];
//Initialization
th[0]=new Thread();
th[1]=neuer Thread();
th[2]=neuer Thread();