Veröffentlicht 24. April 200223 j was ist denn das für eine Exception? java.lang.NullPointerException lg raz
24. April 200223 j 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
24. April 200223 j 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
24. April 200223 j 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.
25. April 200223 j @ 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.