raz Geschrieben 24. April 2002 Geschrieben 24. April 2002 was ist denn das für eine Exception? java.lang.NullPointerException lg raz Zitieren
Jaraz Geschrieben 24. April 2002 Geschrieben 24. April 2002 Hallo, das bedeutet, das dein Object oder deine Variable nichts enthält, also null. Wenn du nun was mit dem Object machen willst, sagt die JVM dir mit dieser Exception, dass die Methode auf ein leeres Object nicht angewendet werden kann. Gruß Jaraz Zitieren
Orffi Geschrieben 24. April 2002 Geschrieben 24. April 2002 Die Java Documentation sagt zu java.lang.NullPointerException folgendes: "Thrown when an application attempts to use null in a case where an object is required." Das bedeutet zum Beispiel, daß Du auf ein Objekt zugreifen willst, für das Du noch keinen Konstruktor aufgerufen hast., also noch keinen Speicher reserviert hast. Jan Zitieren
Crush Geschrieben 24. April 2002 Geschrieben 24. April 2002 Der gaiusjUlius hat das Problem hier beim Stichwort Java kurz aufgezeigt. Auszug: MyClass myObjekt=null; // Objektreferenz, initialisiert mit Nullreferenz myObjekt = new MyClass(); // Instantiierung und Allokation von Speicher Referenzen müssen laut Definition initialisiert sein, bei Java geht das wohl auch wenn es NULL ist, wobei aber eigentlich eine NULL-Initialisierung jedenfalls bei C++ nicht erlaubt ist, sondern nur bei Zeigern. Von dem her halte ich das bei Java für etwas böses und eine große Fehlerquelle, weil uninitialisierte Objekte im Programm unverhersehbare Folgen haben können. Das ist auch ein Grund, warum man die Zeiger bei Java wohlwissentlich aus dem Sprachschatz gestrichen hat - allerdings mit den Null-Referenzen ist das Problem doch wieder durch die Hintertür eingeführt (meiner Meinung nach). Um wirklich sicher zu gehen müßte man in jedem Programm diese Exception abfangen. Der Name "java.lang.NullPointerException" weist aber darauf hin, daß es sich um einen Zeiger handelt und nicht um eine Referenz. Eine 0-Referenz ist also in Java ein Zeiger, wobei hierdurch klar wird, daß eine Referenz in Java auch als Zeiger mit versteckter Dereferenzierung gelöst ist (wie in C++, was ja das Streitthema im obigen Thread war). Ergebnis ist, daß wohl immer ein Unterschied zwischen einer Definition und deren Realisierung in echtem Programmcode besteht, was aber jetzt vom eigentlichen Thema abweicht. Zitieren
Chipsy Geschrieben 25. April 2002 Geschrieben 25. April 2002 @ Crush: warum einfach wenn es auch schwer geht ;o) aber mit deiner Erklärung hast du schon recht. Java hat nun mal für den Programmierer keine sichtbaren Zeiger, aber auf Objekte lässt sich nicht anders zugreifen, deshalb arbeitet Jave intern trotzdem mit Zeigern. Es kann aber schon ganz schöne Tücken haben, das es in Java keine Zeiger gibt. So scheint es zumindest, wenn man von C++ kommt. @raz: prüfe dein Ojekt bevor du auf eine seiner Funktionen/Methoden zugreifst auf null. Bsp: if (ojekt != null){ objekt.funktion(); } oder fange die Exception ab: try{ objekt.funktion(); } catch (java.lang.NullPointerException e){ System.out.println("Fehler in Funktion ... : " + e.getMessage()); } Chipsy Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.