Hallo,
ich habe ein kleines Programm entwickelt und habe nun mit Expcetions zu kämpfen.
Das Thema der Fehlerbehandlung ist wichtig und habe bisher keine Hilfe gefunden, welche besonders für Anfänger gut geeignet ist.
1. Ich bin Anfänger und suche gute, interaktive Tutorials zur Behandlung von Fehlern. Wer kann was empfehlen? :rtfm:
2. Die Fehlermeldung beim dem folgenden Programm weist auf eine Grenzüberschreitung im Array hin. Der Hinweis lässt vermuten das der Array-Index überläuft?! Im Textdokument "zeitreihe" stehen 30 Zahlen.
Sieht hier der geübte Programmierer den Fehler?
Folgende Fehlermeldung erhalte ich:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at Bruchpunktanalyse.main(Bruchpunktanalyse.java:39)
Der Code sieht folgendermaßen aus:
ich habe ein kleines Programm entwickelt und habe nun mit Expcetions zu kämpfen.
Das Thema der Fehlerbehandlung ist wichtig und habe bisher keine Hilfe gefunden, welche besonders für Anfänger gut geeignet ist.
1. Ich bin Anfänger und suche gute, interaktive Tutorials zur Behandlung von Fehlern. Wer kann was empfehlen? :rtfm:
2. Die Fehlermeldung beim dem folgenden Programm weist auf eine Grenzüberschreitung im Array hin. Der Hinweis lässt vermuten das der Array-Index überläuft?! Im Textdokument "zeitreihe" stehen 30 Zahlen.
Sieht hier der geübte Programmierer den Fehler?
Folgende Fehlermeldung erhalte ich:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at Bruchpunktanalyse.main(Bruchpunktanalyse.java:39)
Der Code sieht folgendermaßen aus:
Code:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Bruchpunktanalyse
{
public static void main(String[] args) throws IOException
{
int elmnt = 0;
String rd;
float zahl = 0;
BufferedReader inData = new BufferedReader(new FileReader("zeitreihe.txt"));
while ((rd = inData.readLine()) != null) //In den Textdokument stehen x-Zahlen untereinander
{ //Diese Anzahl muss ich für weitere Berechnungen ermitteln
elmnt++; //unter der Variablenreferenz elmnt wird die Elementenzahl
} //gespeichert
float[] zeitreihe = new float[elmnt]; //Ein Array mit x-Speicherplätzen wird erzeugt
BufferedReader inData2 = new BufferedReader( new FileReader("zeitreihe.txt"));
for (int i = 0; i < elmnt ; i++)
{
zeitreihe [i] = Float.parseFloat(inData2.readLine()); //Das Array wird mit den Elementen der
} //Zeitreihe gefüllt
//Die folgende for-Schleifenverschachtelung ist die eigentliche Analyse
//(Diese Rechenvorschrift soll ermitteln wo der wahrscheinlichste Bruchpunkt liegt...)
for (int k = 1; k <= elmnt - 1; k++)
{
for (int p = 1; p <= k; p++)
{
for (int j = k + 1; j <= elmnt; j++)
{
zahl = Math.signum( zeitreihe [p] - zeitreihe[j])+ zahl;
}
}
System.out.println( zahl );
zahl = 0;
}
}
}