Java.lang.NullPointerExeption

Hi,

ich arbeite mit einem programm, mit dem man debatten auf einem server erstellen kann. allerdings erscheint immer obige fehlermeldung, wenn ich das versuche.

Kann mir da jemand helfen??

danke

Hi

hmm lass mich ma in meine kristallkugel gucken… ahh ja Zeile 99 Zeichen 13…

sorry das musste sein.

Deine Frage ist wie wenn du zu ner Kfz-Werkstatt läufst und die dort fragst was an deinem Auto kaputt ist, aber das Auto steht daheim. Die können dir auch nicht sagen was an deinem Auto kaputt ist ohne es zu sehen und zu untersuchen.

Du bekommst einen Nullpointer, das is nix schlimmes, den kannst du mit nem try catch-Block abfangen, aber ohne Code kann dir hier keiner helfen. Man kann das auf so viele verschiedene Möglichkeiten realisieren… poste einfach ma deinen Quelltext dann kann man dir auch richtig helfen…

Schonmal mit Debuggen versucht? Dann weisst du wenigstens wo der Fehler auftritt und kannst mit hilfe der Informationen die Lösung evtl sogar selbst finden.

Grüße

DE

Hi,

…danke für Deine Antwort, aber leider kann ich mit ihr genauso wenig anfangen, wie Du anscheinden auf meine unzureichende Frage… :smile:

ich weiß nicht, was ein try catch-blocker ist, noch wie ich an den Quelltext komme, und auch nicth, was debuggen ist.

sorry, da bin ich blutig unwissend. Vielleicht hast du den nerv, mir das zu erklären? das wär super…

LG!

hi

ich weiß nicht, was ein try catch-blocker ist, noch wie ich an
den Quelltext komme, und auch nicth, was debuggen ist.

Sorry ich hatte deine Frage falsch verstanden. Dachte du arbeitest AN einem Programm…

sorry, da bin ich blutig unwissend. Vielleicht hast du den
nerv, mir das zu erklären? das wär super…

Naja im endeffekt hast du ein kompilertes Programm und du hast nur die jar Datei die das öffnet wenn ich das richtig verstehe.

Aber zu erklären versuch ichs trotzdem mal.

Also ein Programm besteht aus Klassen, Funktionen, Variablen, Wenn-Dann-Sonst Abfragen und Schleifen.

Als Bsp, ein Mensch.

Der Mensch selbst ist die Klasse, Praktisch eine Bauanleitung (ja im klassischen sinne wäre das ein Interface, aber so ist es grad am einfachsten zu erklären) für beliebig viele Menschen (ein bestimmer Mensch ist dann ein Objekt).Nun bauen wir aus der Klasse Mensch das Objekt Mensch1.
Dieser hat bestimmte Eigenschaften, z.b. hat er eine Haarfarbe. Dann wäre die Haarfarbe eine Variable.

Ein Mensch kann genervt sein. Dann passiert etwas mit ihm oder seinen Eigenschaften. Also wäre genervt eine Funktion. Das ist so das wichtigste.

Nun kann man (beim Programmieren) aber auch sagen dass die Haarfarbe von dem Menschen noch nicht feststeht, sondern erst im laufe seines Lebens irgendwann definiert wird. Nun haben wir ein zweites Objekt vom Typ Mensch (also wir haben einen neuen Menschen hergestellt) Nennen wir ihn Mensch2.

Dieser hat die Funktion: nachHaarFarbeFragen()

Mensch 1 und 2 treffen zusammen. Mensch2 Fragt Mensch 1 nach seiner Haarfarbe. Da diese zum Zeitpunkt der Frage noch nicht definiert ist, ist sie „null“ (leerer Platzhalter).

Da Mensch1 nicht weiss was er darauf antworten soll, tritt ein Fehler auf, undzwar deine nullPointerException.

===============================================================

Das bedeutet, im Prinzip hast du bei der Aktion die du ausführst wenn dieser Fehler auftritt, „vergessen“ einen Wert zu definieren, der Abgefragt wird.

Achja was ein Try-Catch Block und Debuggen ist wolltest du wissen:

Also ein Try-Catch-Block:

Du kannst auf bestimmte Exceptions (bzw auf alle, prüfen)

So mal als bsp,

public void antworteAufFrage(String Frage){
try{
gibEineAntwort(Frage);
}catch(NullPointerException e){
antwort = „Ich weiss es nicht“;
}catch(Exception e){
antwort =„Irgendwas stimmt ganz und gar nicht mit mir“
}

Dieser Codeschnippsel macht folgendes:

Die Funktion antworteAufFrage bekommt eine Frage, Mensch1 versucht mit der Funktion gibEineAntwort(String Frage) eine passende Antwort zu finden.

Jetzt gibt es 3 Möglichkeiten:

Nummer 1:
alles klappt, die Methode ist zueende und die catchblöcke werden nciht beachtet.

Nummer2:
Irgendwas läuft schief, Mensch1 hat keine definierte Haarfarbe. Die nullpointerexception tritt auf. Die Funktion antworteAufFrage wird an der stelle abgebrochen.
Dann springt die Funktion automatisch in den Chatch-Block und antwortet er weiss es nicht. der letzte Catchblock wird hier ignoriert.

Nummer 3: Irgend ein anderer Fehler tritt auf. die Methode antworteAufFrage wird abgebrochen, der Catchblock vom NullPointer wird nicht beachtet. Die funktion springt direkt in den Catchblock für alle anderen Exceptions.

Soo und nun noch was debuggen ist:

Also, man kann im Programm einen sogenannten Breakpoint setzen. Wenn man sich nun im Debug-Modus befindet, hält das Programm an der Stelle, wo der Breakpoint gesetzt wurde, an. Nun kann man das Programm Zeile für Zeile ablaufen lassen und den Verlauf der Funktionen nachvollziehen (im beliebigen Tempo), und die Werte der Variablen überprüfen.

Das hilft dabei die Fehlerquelle zu finden.

Ich hoffe das war soweit verständlich (falls nicht Frag ruhig :wink: )

Mit was für einem Programm arbeitest du denn (also welchen Namen, welche Version) und was ist dein Zielgebiet (also auf was für eine Plattform publizierst du die Artikel)? Was genau machst du wenn dieser Fehler auftritt?

LG!

Grüße

DE

ich arbeite mit einem programm, mit dem man debatten auf einem
server erstellen kann. allerdings erscheint immer obige
fehlermeldung, wenn ich das versuche.
Kann mir da jemand helfen??

Nein, da du uns offenbar nicht verraten willst, welches Programm diese Fehlermeldung liefert.

Hallo,

ich weiß nicht, was ein try catch-blocker ist, noch wie ich an
den Quelltext komme, und auch nicth, was debuggen ist.

dann solltest du den Entwickler dieser Software kontaktieren und ihm von diesem Fehler berichten.

Andreas

Hi
Du bekommst einen Nullpointer, das is nix schlimmes, den
kannst du mit nem try catch-Block abfangen, aber ohne Code

Der Zugriff auf ein Objekt in undefiniertem Zustand ist sehr
wohl schlimm. Und das zu ignorieren ist fast noch schlimmer.
Man sollte in so einem Fall erstmal untersuchen, warum es die
NPE gibt und dieses Problem dann beheben.

Ist aber vielleicht auch Geschmackssache.

Gruss
Patrick

Lieber DE,

Vielen, vielen Dank für Deine ausführlichen Erklärungen!! Jetzt weiß ich zumindest schonmal im Prinzip, warum der Fehler auftritt. Wie er behoben werden kann, allerdings noch nicht :smile:

Ja, das hätte ich wirklich mal sagen können: Das besagte Programm heißt „Argunet“, es ist ein Programm zum Erstellen von (philosophischen) Debatten und wurde am Institut für Philosophie an der FU entwickelt. (sehr nützliches Programm, im übrigen free ware). Die Debatten kann man entweder local erstellen der auf dem server der FU, und immer wenn ich letzteres versuche, kommt diese Java Fehlermeldung.

Meine Vermutung an dieser Stelle: Das Programm weiß aufgrund der Java Einstellungen nicht, wie es auf den Server zugreifen soll. Macht das irgendeinen Sinn?

Ich hatte ein ähnliches Problem mit Outlook, das hat mich bei Mails mit hyperlink nicht weitergeleitet. Das hat sich jetzt wieder geklärt, aber Argunet fehlert immer noch munter vor sich hin.

Interessant für mich: Kann ich als Laie dieses Problem irgendwie beheben?

Ach ja: Mein standard-Browser ist Opera 9.6, ich habe Windwos XP, und Java Version 1.6.0_07

Grüße aus Berlin!

Interessant für mich: Kann ich als Laie dieses Problem
irgendwie beheben?

Nein.
Du solltest den Fehler den Entwicklern von Argunet melden. Am besten über deren Mailing-Liste:
http://groups.google.com/group/argunet-users

Bevor du das aber machst, solltest du sicherstellen, dass du die aktuellste Argunet Version verwendest. Denn eventuell ist der Fehler in der aktuellen Version 1.2.0 bereits nicht mehr enthalten:
http://www.argunet.org/editor/download/

Nachtrag

Du solltest den Fehler den Entwicklern von Argunet melden. Am
besten über deren Mailing-Liste:
http://groups.google.com/group/argunet-users

Der Fehler ist bereits bekannt und wurde auf der Mailing-Liste bereits angesprochen. Offensichtlich liegt es an Problemen mit den Servern und es wird wohl gerade behoben:
http://groups.google.com/group/argunet-users/browse_…

Hi

Jain, es kommt drauf an wie man es sieht. Ein nicht abgefangener Nullpointer ist natürlich schlimm, aber wenn man ihn abfängt, und richtig drauf reagiert, ist er weniger schlimm meines erachtens nach…

Man kann vor dem ausführen der Methode in der ein Nullpointer wirft, eine Hook Methode einbauen die sämtliche z.b. Eingabefelder / Objekte prüft, einen Validator einbauen oder mit Try-Catch geht das auch. Ist halt eine Vorgehenssache.

Grüße

Hi
Jain, es kommt drauf an wie man es sieht. Ein nicht
abgefangener Nullpointer ist natürlich schlimm, aber wenn man
ihn abfängt, und richtig drauf reagiert, ist er weniger
schlimm meines erachtens nach…

Einverstanden!

Gruss
Patrick