Was ist eine Null-Zeiger-Ausnahme in Java
-
Was ist
NullPointerException
in Java? -
Behandeln Sie die Klasse
NullPointerException
in Java -
Behandeln Sie die Klasse
NullPointerException
in Java -
Begegnungen mit
NullPointerException
in Befehlszeilenargumenten in Java
In diesem Tutorial wird die Java-Nullzeigerausnahme und deren Handhabung vorgestellt. Wir haben einige Beispielprogramme für Sie bereitgestellt.
In Java ist der Standardwert jeder Referenzvariablen ein Nullwert, der auf einen Speicherort zeigt, aber keinen assoziierten Wert hat. Wenn ein Programmierer versucht, eine Operation mit dieser Referenzvariablen auszuführen, löst er aufgrund von Nullbedingungen eine Null-Zeiger-Ausnahme aus.
Dies ist ein Szenario, in dem diese Ausnahme auftreten kann, aber diese Ausnahme ist in Java am häufigsten aufgetreten – was den Code unterbricht und zu anormalen Ausführungsabläufen führt. Die folgenden Punkte können in einem Java-Code NullPointerException
auslösen:
- Aufrufen der Instanzmethode eines Nullobjekts.
- Ändern des Felds eines Nullobjekts.
- Behandlung der Länge von null wie ein Array.
Um diese Ausnahme zu behandeln, stellt Java eine Klasse NullPointerException
bereit, die sich im Paket java.lang
befindet. Wir können diese Klasse im catch
-Block verwenden, um den Ausnahmetyp anzugeben und ihn dann abzufangen, um einen Codebruch zu vermeiden.
Was ist NullPointerException
in Java?
Das einfachste Beispiel, um die Klasse NullPointerException
zu verstehen, besteht darin, ein string
-Objekt zu erstellen und dann eine Methode wie toUpperCase()
anzuwenden, um den String in Großbuchstaben umzuwandeln. Schauen Sie sich das folgende Beispiel an und beachten Sie, dass es eine Ausnahme auslöst, da das Objekt string
leer ist:
public class SimpleTesting {
static String str;
public static void main(String[] args) {
String newStr = str.toUpperCase();
System.out.println(newStr);
}
}
Ausgabe:
Exception in thread "main" java.lang.NullPointerException
Behandeln Sie die Klasse NullPointerException
in Java
Um Ausnahmen zu behandeln, stellt Java einen Try-Catch-Block bereit. Hier können wir diese Blöcke verwenden, um NullPointerException
abzufangen und eine abnormale Programmbeendigung zu vermeiden. Überprüfen Sie das folgende Beispiel:
public class SimpleTesting {
static String str;
public static void main(String[] args) {
try {
String newStr = str.toUpperCase();
System.out.println(newStr);
} catch (NullPointerException e) {
System.out.println("Null Pointer: " + e.getMessage());
}
}
}
Ausgabe:
{One=1, Two=2, Three=3}
Behandeln Sie die Klasse NullPointerException
in Java
Wenn Sie den Nullverweis bereits kennen, können Sie einen if-else-Block verwenden, um zuerst die Variable zu validieren, bevor Sie eine Operation anwenden. Diese Methode ist eine ausgezeichnete Lösung, funktioniert jedoch nur, wenn Sie den Nullverweis zuvor kennen. Siehe den Code hier:
public class SimpleTesting {
static String str;
public static void main(String[] args) {
if (str != null) {
String newStr = str.toUpperCase();
System.out.println(newStr);
} else
System.out.println("String is null");
}
}
Ausgabe:
String is null
Begegnungen mit NullPointerException
in Befehlszeilenargumenten in Java
Dies ist ein weiteres Szenario, in dem eine Null-Zeiger-Ausnahme auftreten kann. Das Array args[]
der Methode main()
enthält Kommandozeilenargumente, und wenn während der Laufzeit kein Argument angegeben wird, zeigt dies auf eine Null-Referenz. Das Abrufen seiner Länge gibt NullPointerException
zurück. Siehe das Beispiel unten:
public class SimpleTesting {
static String[] arr;
public static void main(String[] args) {
int length = arr.length;
System.out.println("Array length : " + length);
}
}
Ausgabe:
Exception in thread "main" java.lang.NullPointerException
Verwandter Artikel - Java Exception
- Ausnahme bei ungültiger Eingabe in Java
- Ausnahme im Hauptthread Java.Util.NoSuchElementException: Keine Zeile gefunden
- Ausnahme im Thread AWT-EventQueue-0 java.lang.NullPointerException
- Beheben Sie die Java.Net.BindException: Adresse wird bereits verwendet: Bind
- Der Java-Gateway-Prozess wurde beendet, bevor seine Portnummer gesendet wurde
- Java Throwable vs. Ausnahmeklasse