Wortkarge Error-Message

Herr Kaiser

Bekanntes Mitglied
Hi Forum,

mein Programm stockt an irgendeiner Stelle und die IDE (Netbeans) gibt von sich:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException

Die Fehlermeldung sagt mir etwas, nur bin ich gewohnt, dass Netbeans mir das betreffende Modul, die auslösende Programzeile und die unpassende Index-Zahl nennt. In diesem Fall steht aber nichts von dem und ich steh' völlig auf dem Schlauch, wo ich suchen soll. Ich würde gerne Beispielcode posten, aber das Programm ist inzwischen so lang und komplex, und ohne jeden Anhaltspunkt kann ich nicht abschätzen, welche Codeteile hier von Bedeutung sind. Meine Hoffnung wäre, dass man auf irgend eine Weise eine etwas informativere Fehlermeldung erhalten könnte. Wisst Ihr Rat ???
 

Fab1

Top Contributor
Der Fehler tritt in der Regel auf, wenn du mit einer Schleife ein Array oder eine Liste durchläufst, aber einen Index ansprichst den es nicht gibt.

Falscher Code mit Exception:

Java:
int [] zahlen = {1,2,3,4,5,6};
    	
    	for(int i = 0; i<=zahlen.length; i++){
    		System.out.println(zahlen[i]);
    	}

Richtiger Code ohne Exception:

Java:
int [] zahlen = {1,2,3,4,5,6};
    	
    	for(int i = 0; i<zahlen.length; i++){
    		System.out.println(zahlen[i]);
    	}

[EDIT]Beim zweiten mal lesen fällt mir auf, dass dir meine Lösung nicht hilft :)[/EDIT]

[EDIT]
Um den Fehler einzugrenzen würde ich immer mal wieder ein paar System.out.println("Aussagekräftiger Text"); einbauen.
Damit lässt sich der Fehler etwas eingrenzen.

[/EDIT]
 
Zuletzt bearbeitet:
G

Gast2

Gast
Normalerweise wird immer der komplette Stacktrace in die Konsole geschrieben. Es sei denn man macht solche Späße:
Java:
try {
  // ...
} catch (Exception e) {
  System.out.println(e);
}
Dann bekommt man so eine Ausgabe wie du da oben gepostet hast und man darf ne schöne Zeit lang den Fehler suchen ;)
 

xehpuk

Top Contributor
Hmm, das klingt ziemlich merkwürdig. Also mit
Code:
System.err.println(e)
kriegt man auch nicht so eine Ausgabe. Da stünde dann nur
Code:
java.lang.ArrayIndexOutOfBoundsException
auf der Konsole.

Dass da kein Index steht, ist ja auch recht außergewöhnlich. Ich habe mir mal die Call Hierarchy des parameterlosen Konstruktors ausgeben lassen. Da kam dann das zustande:
  • java.util.zip.Deflater.deflate(byte[], int, int, int)
  • java.io_ObjectInputStream.HandleTable.HandleList.get(int)
  • java.util.zip.Inflater.inflate(byte[], int, int)
  • java.net.SocketInputStream.read(byte[], int, int, int)
  • java.util.zip.Deflater.setDictionary(byte[], int, int)
  • java.util.zip.Inflater.setDictionary(byte[], int, int)
  • java.util.zip.Deflater.setInput(byte[], int, int)
  • java.util.zip.Inflater.setInput(byte[], int, int)
  • java.net.SocketOutputStream.socketWrite(byte[], int, int)
  • java.util.zip.Adler32.update(byte[], int, int)
  • java.util.zip.CRC32.update(byte[], int, int)
Wird davon eine Methode benutzt?

Allgemein würde ich die Anwendung mal im Debug-Modus starten. Zumindest Eclipse stoppt, wenn eine Exception geworfen und nicht gefangen wird. Wie das nun bei Netbeans ist, weiß ich nicht.
 

Herr Kaiser

Bekanntes Mitglied
Ich hab mich jetzt an meinen Fehler herangeprintlt. Eine völlig dämliche Sache. Ich habe für die ArrayList wert folgendes geschrieben:

Java:
for (int i = 0; i<wert.size(); i++){
    if (wert.get(i)<wert.get(i-1)){
        monoton=false;
        break;
    }
}

was ja schon in der ersten Runde bei wert.get(-1) eine Exception werfen muss. Ein dummer Flüchtigkeitsfehler. Dass die Schleife bei i=1 starten muss, hätte ich sofort erkannt, wenn ich einen Anhaltspunkt auf den Codeabschnitt gehabt hätte. Die gestutzte Meldung ist mir nach wie vor ein Rätsel. Der Code befindet sich in keinem Try-catch-Block, und die Methoden, die du ausfindig gemacht hast, xehpuk (danke für deine Mühe :) ) sind wohl auch nicht beteiligt. Alle im Programm vorhandenen Catch-Abschnitte lasse ich Meldungen mit "Ortsangaben" ausgeben, aber von denen springt keiner an. Very strange ...

Vielen Dank für eure Mühe und Hinweise! :)
 

Herr Kaiser

Bekanntes Mitglied
Was ich jetzt herausgefunden habe, ist ja auch kurios. Wenn ich den Index nicht nach unten, sondern nach oben aus dem Ruder laufen lasse:

Java:
for (int i = 1; i<wert.size(); i++){
    if (wert.get(i)<wert.get(i+1000000000000)){
        monoton=false;
        break;
    }
}

gibt's ne vernünftige Message mit allem drum und dran! Das klingt doch nach einem Bug, oder?
 
S

Spacerat

Gast
Hallo Herr Kaiser
Schon allein die Tatsache, das die [c]AWT-EventQueue[/c] diese Exception schmeisst ist merkwürdig. Selbst wenn der Fehler in einem Listener auftaucht, hat man wie es aussieht in dieser Queue mindestens ein [c]printStackTrace()[/c] vergessen oder ersetzt. Dann wäre es natürlich ein Bug oder sehe ich das falsch?
 

xehpuk

Top Contributor
Um dem Szenario möglichst nah heranzukommen, habe ich Folgendes gebaut:
Java:
public static void main(final String[] args) {
	SwingUtilities.invokeLater(new Runnable() {
		@Override
		public void run() {
			boolean b = true;
			final ArrayList<Integer> list = new ArrayList<>();
			list.add(42);
			list.add(1337);
			for (int i = 0; i < list.size(); i++) {
				if(list.get(i) < list.get(i - 1)) {
					b = false;
					break;
				}
			}
			System.out.println(b);
		}
	});
}
Bringt nichts. Sieht alles normal aus:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
	at java.util.ArrayList.elementData(ArrayList.java:371)
	at java.util.ArrayList.get(ArrayList.java:384)
	at ...
In Java 7 (inkl. Update 1) gabs ja einen Bug bei der Optimierung von Schleifen, wenn ich das richtig gelesen hatte. Vielleicht könnte dies ein gruseliger Nebeneffekt sein?
Getestet habe ich das mit
Code:
1.7.0_04-ea-b01
.
 

Herr Kaiser

Bekanntes Mitglied
In Java 7 (inkl. Update 1) gabs ja einen Bug bei der Optimierung von Schleifen, wenn ich das richtig gelesen hatte. Vielleicht könnte dies ein gruseliger Nebeneffekt sein?
Getestet habe ich das mit
Code:
1.7.0_04-ea-b01
.

Vielleicht wäre das eine Erklärung. Solange das Projekt unter Java 6 lief, bin ich zumindest nie dieser Seltsamkeit begegnet. Meine Java-Version:
Code:
1.7.0_147-icedtea; OpenJDK 64-Bit Server VM 21.0-b17


EDIT: ach nee, wohl doch nicht. Wenn ich die gleiche Methode aus einer anderen Klasse heraus aufrufe, ist die Fehlermeldung vollständig. Da werde ich wohl irgendwo an einer anderen Stelle irgendeine Dämlichkeit begangen haben, die ich als Anfänger noch nicht überblicke. Wenn mein Groschen irgendwann fallen sollte, sage ich bescheid ...
 
Zuletzt bearbeitet:

California

Aktives Mitglied
Um dem Szenario möglichst nah heranzukommen, habe ich Folgendes gebaut:
Java:
		for (int i = 0; i < list.size(); i++) {
				if(list.get(i) < list.get(i - 1)) {
...
Egal ob Du innerhalb der Schleife list.get( i + 1 ) oder list.get( i - 1 ) schreibst, bist Du out of bounds.
Im ersten Durchlauf willst du auf Element -1, im letzten Durchlauf auf grösstmöglicher Index +1.

Ausserdem... warum nimmst Du keine "foreach" :
Java:
List<String>strings = new ArrayList<String>();

fuelleStrings()...;

for (String string : strings) {
    machWasMit( string );
}
 
Zuletzt bearbeitet:
B

...ButAlive

Gast
Du kann einen so genannten Exception Breakpoint setzten. Dazu gehts du unter Debug->New Breakpoint. In diesem Dialog wählst du als "Breakpoint Type" Exception aus. In das Feld "Exception Class Name" trägst du "java.lang.ArrayIndexOutOfBoundsException" ein und klickst ok.

Wenn du jetzt dein Programm debuggst hält der Debugger in der Zeile an, die die ArrayIndexOutOfBoundsException verursacht.
 

Herr Kaiser

Bekanntes Mitglied
Super, das ist ein guter Hinweis. Auf die Schnelle hat's zwar noch nicht funktioniert. Werde mich in den Debugger mal vertiefen und es nochmal sorgfältiger probieren. Was ich übrigens nebenbei festgestellt habe: wenn ich das Programm durch Aufruf der jar direkt in der Konsole laufen lasse, gibt's den ausführlichen StackTrace!
Also ist das Problem möglicherweise eine NetBeans-Zickigkeit? ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
monsterherz error: <identifier> expected Java Basics - Anfänger-Themen 2
R Compiler-Fehler identifier error? Java Basics - Anfänger-Themen 3
N Compiler-Fehler Not a statement Error Java Basics - Anfänger-Themen 7
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
N Compiler-Fehler State Machine - Compiler Error Java Basics - Anfänger-Themen 48
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
Gaudimagspam Compiler Error Java Basics - Anfänger-Themen 3
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
A Scanner-Error Java Basics - Anfänger-Themen 8
Elyt Error: incompatible types Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
C error: <identifier> expected Java Basics - Anfänger-Themen 13
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
N Methoden Unerklärliche Error Meldung Java Basics - Anfänger-Themen 3
ZH1896ZH Datentypen Error bei For-Schleife Java Basics - Anfänger-Themen 2
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
9 Error bei .split() Java Basics - Anfänger-Themen 2
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
F Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 5
L SQLITE - Syntax error Java Basics - Anfänger-Themen 3
R else without if error Java Basics - Anfänger-Themen 5
A Objekt in Methode zurückgeben, JUnit zeigt Error Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
T Unverständlicher Launch-Error Java Basics - Anfänger-Themen 11
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
T Error: int cannot be dereferenced Java Basics - Anfänger-Themen 10
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
J Syntax error on token ";",, expected Java Basics - Anfänger-Themen 2
W double*double error Java Basics - Anfänger-Themen 4
C Compiler-Fehler No such Field error Java Basics - Anfänger-Themen 20
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Erste Schritte Syntax Error Java Basics - Anfänger-Themen 23
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
H Compiler-Fehler error not a statement Java Basics - Anfänger-Themen 2
N Error bei eingabe eines Punktes Java Basics - Anfänger-Themen 1
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
TheMenox Error bei Scanner - woher? Java Basics - Anfänger-Themen 14
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
Chr1s Interpreter-Fehler Error Fehlercode Java Basics - Anfänger-Themen 7
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
J Error: cannot find symbol - variable Java Basics - Anfänger-Themen 3
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
1 Bei if-Anweisung: Syntax error on token Java Basics - Anfänger-Themen 5
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
C Exception Error Java Basics - Anfänger-Themen 15
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
B Not a statement error Java Basics - Anfänger-Themen 2
D error: cannot find symbol Java Basics - Anfänger-Themen 3
B Frage zu Beispielprogramm: "error: cannot find symbol" Java Basics - Anfänger-Themen 2
F java Ip ping + Dateiausgabe error ! Java Basics - Anfänger-Themen 3
O Exception Error Java Basics - Anfänger-Themen 3
BlueMountain Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 2
B Printf führt zu Error. Java Basics - Anfänger-Themen 8
P Fatal Error [...] librxtxSerial.so Java Basics - Anfänger-Themen 2
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
L Error: Cannot find symbol Java Basics - Anfänger-Themen 1
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
B Compiler-Fehler 86:11: error: ';' expected obwohl kein ";" hingehört! Java Basics - Anfänger-Themen 10
K Java-Editor: "Starten" bringt Error Java Basics - Anfänger-Themen 15
N Error "unreachable Code" Java Basics - Anfänger-Themen 7
A error: incompatible types Java Basics - Anfänger-Themen 9
T If ; else error on system token delete Java Basics - Anfänger-Themen 5
B Error vs Runtime exception Java Basics - Anfänger-Themen 4
W Variablen While-Error Java Basics - Anfänger-Themen 6
N Operatoren JSpinner und + Error Java Basics - Anfänger-Themen 21
M Java Arbeitsspeicherverbrauch, Heap Space error korrigieren? Java Basics - Anfänger-Themen 18
D Error bei addView Java Basics - Anfänger-Themen 4
M Syntax error on token ";", { expected after this token Java Basics - Anfänger-Themen 3
J Variablen Invalid Character - Error -> Spiel mit Variablenergebnissen Java Basics - Anfänger-Themen 8
K Erste Schritte eclipse syntax error token Java Basics - Anfänger-Themen 5
vandread String.split("\\") führt zu Error?! Java Basics - Anfänger-Themen 8
G Fehlermeldung: A fatal error has been detected by the Java Runtime Environment Java Basics - Anfänger-Themen 7
B Compiler-Fehler import java.io.*; führt zu error Java Basics - Anfänger-Themen 2
S Syntax Error - source level Java Basics - Anfänger-Themen 12
L bean error bei glassfish deploy Java Basics - Anfänger-Themen 2
B Syntax error Java Basics - Anfänger-Themen 6
K Error: java.lang.NoSuchMethodException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben