Zum Inhalt springen

Exception


raz

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...