Hi,
was ist genau ein Null-Zeiger und wie kann ich durch diesen verursachte Exception abfangen?
was ist genau ein Null-Zeiger und wie kann ich durch diesen verursachte Exception abfangen?
AUUUTSCHHHH!!!![HIGHLIGHT="Java"]
String text = null;
try {
System.out.println( text.length() );
} catch ( NullPointerException ex ) {
System.out.println( "NullPointerException abgefangen" );
}
[/HIGHLIGHT]
text ist hier der Nullzeiger. Dabei muss die Variable kein String sein, jeder andere Typ wäre ebenso möglich (außer ein primitiver Datentyp).
null zeigt an, dass die Variable zur Zeit auf kein Objekt verweist.
Daher wird bei der versuchten Ausgabe in Zeile 3 auch eine NullPointerException geworfen, da ein nicht vorhandener String natürlich auch keine Länge besitzt.
Abfangen kann man Exceptions mit einem try-catch-Block, mehr dazu gibt es hier und hier.
AUUUTSCHHHH!!!!
NullPointerExceptions sind in der Regel Programmierfehler und sollten NIEEEEE in einem try{}catch{} abgefangen werden.
Immer selber prüfen, ob ein Objekt null ist ...
Es gibt in Java keine Pointer. Es gibt Referenzen. this oder null gehören auch dazu.Nullpointer bedeutet dass der Variable nicht initialisiert ist, quasi auf den Speicherbereich 0 zeigt, den es nicht gibt.
Es gibt aber auch Codestellen, die Exceptions werfen können, die der Compiler verlangt aufzufangen. Oft sind das bspw. die IOException.try { .... } catch (NullPointerException e) { .... } <- wie jede andere Exception auch, man sollte aber versuchen NPE's generell zu vermeiden
Es gibt in Java keine Pointer. Es gibt Referenzen. this oder null gehören auch dazu.
Die null-Referenz zeigt auf eine Instanz eines Objektes im Speicher de VM, welches noch nicht oder nicht mehr existiert.
Es gibt aber auch Codestellen, die Exceptions werfen können, die der Compiler verlangt aufzufangen. Oft sind das bspw. die IOException.