Null Pointer

Sorry, ich nutze zum ersten Mal das Forum und habe nicht herausfinden können, wie man auf bereits existierende Beiträge antworten kann :stuck_out_tongue: (blöd). Eine passende Antwort konnte ich auch nicht finden.

Ich weiß WAS eine Null Pointer Exception ist, aber nicht wie man sie weg bekommt.
Mein Programm in Java: eine Klasse, die eine Auswahl hat (es ist immer etwas ausgewählt) und eine Klasse, die auf den Text dieser Auswahl zugreift. Null bekomme ich „caused by Null P…“ beim Ausführen für diesen Schritt, obwohl die Auswahl immer einen Text hat.
Warum?

Ich weiß WAS eine Null Pointer Exception ist, aber nicht wie
man sie weg bekommt.
Mein Programm in Java: eine Klasse, die eine Auswahl hat (es
ist immer etwas ausgewählt) und eine Klasse, die auf den Text
dieser Auswahl zugreift. Null bekomme ich „caused by Null
P…“ beim Ausführen für diesen Schritt, obwohl die Auswahl
immer einen Text hat.
Warum?

Das hier ist das JavaSCRIPT-Forum nicht das Java-Forum (JavaScript != Java)

Da ich auch täglich mit Java zu tun haben dennoch meine Antwort:
Eine NPE bekommst du nicht weg. Wenn Du auf ein Object zugreifst das null ist dann bekommst Du die NPE.
Du kannst nur überprüfen ob ein Object null ist und dann das Object entsprechend behandeln.

if( null != someObject ){
someObject.method();
} else {
log.warn(„someObject is null“);
}

Hey

so oder wenn man einen Stacktrace haben will, bzw mehrere Fehler auftreten könnten:

try{
object.doSomething();
}catch(NullPointerException ne){
ne.printStacktrace();
doSomethingWithTheNullObject();
}catch(Exception e){
e.printStacktrace();
doAnotherThing();
}

So kannst du auf jede beliebige Exception prüfen und diese, je nach Exception abhandeln.

Das ist meines erachtens nach die beste Alternative , wenn man nicht will das ein Objekt null sein kann. (Gibt ja auch Programme wo man einen Nullwert erwarten könnte da würde ich dann if nehmen :wink: )

Grüße

DE

Hmm, danke!
Sorry, wegen Posting im falschen Forum.
Wenn ich nächstes Mal, daran bastel, dan versuch ichs. Aber ich versteh nicht, warum ich da eine NPE bekomme. Ich greife ja lediglich auf die besagte Auswahl zu, ich durchlaufe sie nicht also ist mein Pointer nicht „out of Auswahl“ und es ist auch immer was ausgewählt. Aber ich machs mal mit der Bedingung. thx!

Ohne den Code zu sehen weiß ich nicht Warum Du eine NPE bekommst.
Das kann alles oder nichts sein…

letzter Teil der Fehlermeldung:

„Caused by: java.lang.NullPointerException
at Notizzettel.fuehreAus(Notizzettel.java:26)
at SuMAnwendung.hatKnopfSpeichernGeklickt(SuMAnwendung.java:245)
… 31 more“

Notizzettel.fuehreAus ist nicht mehr als:

meinStift.bewegeBis(10, 10);
meinStift.schreibeText(Notiz.Tag());

Tag ist in der Anwendungsklasse so definiert:

public String Tag()
{
return hatAuswahlTag.text();
}

und Knopf „Speichern“ macht nur folgendes:

public void hatKnopfSpeichernGeklickt()
{
einNotizzettel = new Notizzettel();
einNotizzettel.fuehreAus();
}

Das ist was das Programm bisher tun soll.
Ich habe ein paar Auswahlen erstellt in denen man das Datum und die Uhrzeit wählen kann, einen Zeilenbereich für die Notiz und einen Knopf.
Bei klicken des Knopfes, soll bisher nur ein Notizzettel erstellt werden, der ein Bildschirm ist und der ausgewählte Tag soll als String im Bildschirm stehen.
Das wird später alles ein bisschen edler, aber wenn das noch nicht mal klappt, wie soll ich dann weiterarbeiten? Ich hoffe, in diesem Teil ist schon der Fehler zu entdecken. Danke schonmal!