Häufige Fehler und deren Lösung

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Diese FAQ bezieht sich auf Fehlermeldungen, die immer wieder
auftauchen - vorallem wenn man Java-Neuling ist. Weil bestimmte
Dinge immer wieder hier gefragt werden, nun mal eine Zusammenfassung.

Bevor es jetzt aber an die einzelnen Fehler geht, mal ein kleines Vorwort
dazu:

Java stellt Fehler als sogenannte "Exceptions" dar, d.h. irgendeine
Methode/Operation "wirft" einen Fehler, weil was nicht passt.
Eine solche Fehlermeldung ist eigentlich immer gleich aufgebaut,
und zwar wird in der Ausgabe (Shell/Dos-Fenster bzw. ein Konsolen-Fenster
in einer IDE) der sogenannte "Stack Trace" angezeigt.

Das ist auf deutsch gesagt einfach eine Liste, die alle sequentiellen
Methoden-Aufrufe/spezielle Operationen chronologisch anzeigt.
Wobei der oberste Eintrag der "neueste" ist.

In der ersten Zeile einer jeden Fehlermeldung steht also, wo
dieser Fehler im Endeffekt aufgetreten ist.
Die Zeilen beinhalten eig. alle Infos, die man braucht:
Es steht der Name der aufgerufenen Methode bzw der Operation da,
in welcher Klasse das ganze passiert ist, und auch noch die exakte
Zeilennummer, in der der Fehler aufgetreten ist.
Ausserdem der Name des Fehlers selbst, der meistens auch Sinn macht.

Oftmals schlängelt sich ein Fehler durch mehrere Methoden durch,
bis sein Effekt zum Tragen kommt. Dafür eben der Stack Trace, der mehr
beinhaltet als nur den letzten Aufruf. Man kann dort also zeilenweise
runterlesen und kucken, wo denn die Ursache des Fehlers liegt.

Denn wo ein Fehler im Endeffekt auftritt, und wo die eigentliche
Ursache dafür liegt (irgendwo passiert etwas, was der Programmierer
so nicht geplant hatte), sind oft zwei verschiedene Dinge.

Nun gut, soviel zu den Fehlermeldungen. Das ist ein super System
was Java da hat, man sollte sich damit anfreunden und sich mit den
netten Stack Traces beschäftigen, statt gleich aufzugeben. Sie enthalten
wie gesagt eig. alle Infos.

Nun zu den häufigsten Fehlern im Einzelnen:

IndexOutOfBoundsException:
Einen Index gibt es nur bei iterierbaren Datenstrukturen, also
Arrays, Listen usw.
OutOfBounds heisst übersetzt sowas wie "sprengt den Rahmen".

Der Fehler tritt in 90% der Fälle bei einem Array auf, typisches
Bsp wie es jedem Anfänger mindestens einmal passiert:

Code:
int[] myArray = new int[1];
myArray[1] = 4;

Der Index ist hier die "1". Das ist OutOfBounds, weil Java immer bei
0 anfängt zu zählen. Wir haben ein Array mit nur einem Fach erstellt,
das heisst es gibt nur das eine Fach mit Index 0. Nicht 1, das wäre schon
ein Array der Länge zwei.
Also der Fehler heisst einfach: Dieses Fach, auf dass du zugreifst, gibt
es nicht.

Lösung: Überprüfe nochmal genau den Index, überlege wo
hier zB in Schleifen ein Wert rauskommen kann, der negativ ist oder
grösser als die Array-Länge.

NullPointerException:

Auch bei schon fortgeschrittenen Programmierern sehr beliebt ;)
Der Fehler bedeutet, dass auf ein Objekt zugegriffen wird, das "null"
ist. Unter Anfängern sehr oft deswegen, weil man vergessen hat
das Objekt zu initialisieren.

Bsp:
Code:
Auto[] meineAutos = new Auto[1];
meineAutos[0].getPS(); // <- BAEM

Zugreifen heisst also eine Methode darauf anwenden, oder
ein Attribut abzufragen.
(So ein Fehler kommt noch nicht, wenn man nur ein null-Objekt zB
über verschiedene Methoden hin- und herreicht!)
Ein Array erstellen heisst noch lange nicht,
dass man Autos hat. Man hat nur einen Container, der Autos speichern
kann.

Lösung:
Der Stack Trace zeigt dir ja schon die Zeile, inder du etwas mit einem
null-Objekt tust. Überlege, warum das Objekt null ist, wie das sein kann,
und korrigiere deinen Code.
Konkret ist das eben entweder eine Initialisierung, oder eine if-Abrage:

Code:
if(myAutos[0] != null){
      myAutos[0].getPS();
}

Cannot find symbol...
Dieser Fehler heisst, dass beim Compilieren des Quell-Codes auf
eine Variable gestossen wurde, die nirgendswo definiert wurde.
Bsp:

Code:
public static void main(String[] args){
    int y = 2;
    int z = x+y; // cannot find symbol "x"
}

Das gilt auch für Methoden. Bei Anfängern kommt der Fehler häufig
weil sie vergessen bestimmte Dinge aus Java-Paketen zu importieren,
sodass Java damit nix anfangen kann.
..Oder weil sie sich schlichtweg vertippen, und mal einen kleinen
Buchstaben im Aufruf einer Methode vergessen.

Lösung:
Die Meldung benennt dir konkret, was nicht definiert wurde.
Nach Tippfehlern im Code suchen!
Oder ein nötiges import einfügen, oder kucken dass man die
Variable halt definiert. ;)

non-static method can't be referenced from a static context

...oder alles was die Worte non-static und static kombiniert
(es gibt da glaub ich mehrere Exceptions).
Siehe dazu:

http://www.java-forum.org.server659-han.de-nserver.de/showthread.php?t=7200

So, ich glaube das war's. Wenn noch was fehlt, bitte PN an mich.

Und wie schon gesagt: Lernt, mit Fehlermeldungen umzugehen.
Es gibt insgesamt gefühlte 500+ Exceptions allein in der Standard-API.
Auswendig kann die keiner alle, aber wenn man gelernt hat den
Stack Trace zu lesen, kriegt man alles hin.
 

0x7F800000

Top Contributor
Hey, das ist schonmal recht schick, bist du dir sicher, dass es sich nicht großartig mit bereits vorhandenen Artikeln überschneidet? Ansonsten cool...

Überprüfe nochmal genau den Index, überlege wo
hier zB in Schleifen ein Wert rauskommen kann, der negativ ist oder
grösser als die Array-Länge.
um's nochmal ganz deutlich zu machen sollte es "größer-gleich der Array Länge" heißen.
 
Zuletzt bearbeitet von einem Moderator:

Illuvatar

Top Contributor
Hey, das ist schonmal recht schick, bist du dir sicher, dass es sich nicht großartig mit bereits vorhandenen Artikeln überschneidet?

Ja, das ist ein gewisses Problem... es ist zwar schade, weil hier eine Menge Mühe sicher drinsteckt, allerdings kann ich so keinen wirklichen Sinn erkennen.

Ich werd den Thread jetzt zunächst mal verschieben, und möchte nur nochmal anmerken: Dass das FAQ-Forum zur Zeit für alle beschreibbar ist, ist meines Wissens nach keine Absicht!

(PS: zu was für Uhrzeiten seid ihr denn noch wach 0o)
 

hdi

Top Contributor
Ja tut mir leid, hatte natürlich vorher die FAQ durchsucht. Wohl einfach
übersehen, lag wohl auch an der Uhrzeit.
Also ihr könnt das ruhig löschen, der andere Thread darüber scheint
ja sehr ausführlich und gut zu sein!

mfg und sorry für die Umstände. (Ab jetzt schlaf ich um die Zeit lieber ;))
 

L-ectron-X

Gesperrter Benutzer
Das Problem habe ich eben gefixt. FAQ-Beiträge sind ab sofort wieder nur Moderatoren erlaubt.

Wenn jemand einen Beitrag für die FAQ schreiben möchte, ist das sehr willkommen und wird positiv in der Personalakte vermerkt. ;)

Ich schlage vor, dass wenn jemand einen FAQ-Beitrag schreiben möchte, diesen im passenden Unterforum erstellt. So können andere Benutzer auch ihren Senf dazu geben. Ein Moderator verschiebt dann den fertigen Beitrag in die FAQ und verlinkt sie mit der Übersichtsseite.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
B Fehler bei einem Programm Allgemeine Java-Themen 10
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
S Ganzes Programm "stucked" - JVM-Fehler? Allgemeine Java-Themen 2
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
J Compiler-Fehler .nextLine fehler Allgemeine Java-Themen 3
B Fehler im Java-Code Allgemeine Java-Themen 4
S Java Fehler bei Konsolenprogramm Allgemeine Java-Themen 2
N Was ist ein Fehler (Requirement-Engineering) Allgemeine Java-Themen 3
C System.out.print("") Compiler Fehler Allgemeine Java-Themen 2
T Programm bleibt ohne Fehler stehen Allgemeine Java-Themen 4
G Fehler beim instanzieren einer Generischen Klasse Allgemeine Java-Themen 5
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11
K Input/Output Fehler bei Dateierzeugung Allgemeine Java-Themen 7
M Fehler bei Remoteinstallation von Java Allgemeine Java-Themen 5
M Fehler bei Verwendung von TexturePaint Allgemeine Java-Themen 16
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
G Merkwürdiger Fehler NetBeans Allgemeine Java-Themen 2
G Native Library / Fehler beim Laden der .so/.dll Datei Allgemeine Java-Themen 17
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
iB0T Unverständlicher Fehler Allgemeine Java-Themen 5
S Antlr Grammatik übersetzt ohne Fehler, dennoch wird Zahl nicht als Eingabe erkannt Allgemeine Java-Themen 4
S Fehler mit JScrollPane Allgemeine Java-Themen 4
K SimpleDateFormat Fehler Allgemeine Java-Themen 3
M import Fehler Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben