IndexOutOfBoundsException / Try-Catch

Macklaire

Mitglied
Hey,
ich hätte da mal ne Frage. Ich google seit Stunden und finde meinen Fehler einfach nicht.

In dem Programmausschnitt geht es darum, dass gefragt werden wie viele Spieler teilnehmen. Wenn ich dann zu der Abfrage komme, ob es nicht 0 und maximal 15 Spieler sind und ich eine falsche Eingabe tätige, wirft er mir einen "IndexOutOfBoundsException" Error. Diesen will ich auffangen und den User eine ernuete Spieleranzahl eingeben lassen. Doch er fängt den Fehler einfach nicht auf.

Bisher sieht das so aus:

Java:
try {
            if (anzahlSpieler <= 15 && anzahlSpieler > 0) {

                int i = 0;

                do {

                    i++;

                    System.out.println("Bitte Namen eingeben: ");
                    String name = scanner.next();
                    namensListe.add(name);
                    
                } while (i < anzahlSpieler);
            }
        } catch (IndexOutOfBoundsException e) {
            System.out.println(e);
        }

Ich bedanke mich jzt schonmal für Rückmeldungen ^^
 

Macklaire

Mitglied
Das ist noch oben drüber. Aber eigentlich unwichtig uns selbsterklärend ^^
Java:
System.out.println("Bitte Anzahl der Spieler eingeben: ");
        Scanner scanner = new Scanner(System.in);
        int anzahlSpieler = scanner.nextInt();
 
K

kneitzel

Gast
Wo genau kommt denn die IndexOutOfBoundsException? Also immer auch den Stacktrace mit ausgeben!

Zeige bitte mal den ganzen Code und nicht nur diese Ausschnitte.

Generell ist das keine Exception, die Du fangen solltest sondern es sollte durch Deinen Code nie zu so etwas kommen. Diese Exception ist eine Exception, die geworfen wird, wenn der Entwickler einen Fehler gemacht hat.
 

Macklaire

Mitglied
Okay. Also das ist der ganze Code. Jedenfalls die Klasse in der ie main Methode ist.

Nicht urteilen, ich bin noch Anfänger ^^

Java:
import java.lang.IndexOutOfBoundsException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Maexchen {

    public static void main(String[] args) {

        List<String> namensListe = new ArrayList<String>();
        Spieler spieler = new Spieler();
        int gesamtPunkteSpieler1 = 0;
        int gesamtPunkteSpieler2 = 0;

        System.out.println("Bitte Anzahl der Spieler eingeben: ");
        Scanner scanner = new Scanner(System.in);
        int anzahlSpieler = scanner.nextInt();
        
        try {
            if (anzahlSpieler <= 15 && anzahlSpieler > 0) {

                int i = 0;

                do {

                    i++;

                    System.out.println("Bitte Namen eingeben: ");
                    String name = scanner.next();
                    namensListe.add(name);
                    
                } while (i < anzahlSpieler);
            }
        } catch (IndexOutOfBoundsException e) {
            System.out.println(e);
        }

        for (int runden = 1; runden <= 3; runden++) {
            System.out.println("\n" + namensListe.get(0) + " ist am Zug");
            gesamtPunkteSpieler1 += spieler.getSpielerPunkteInDieserRunde();

            System.out.println("\n" + namensListe.get(1) + " ist am Zug");
            gesamtPunkteSpieler2 += spieler.getSpielerPunkteInDieserRunde();
        }

        if (gesamtPunkteSpieler1 > gesamtPunkteSpieler2) {
            System.out.println("\n´" + namensListe.get(0) + "´ hat das Spiel mit " + gesamtPunkteSpieler1 + " Punkten gewonnen.");
        } else if (gesamtPunkteSpieler1 < gesamtPunkteSpieler2) {
            System.out.println("\n´" + namensListe.get(1) + "´ hat das Spiel mit " + gesamtPunkteSpieler2 + " Punkten gewonnen.");
        } else if (gesamtPunkteSpieler1 == gesamtPunkteSpieler2) {
            System.out.println("\nEs steht unentschieden. Beide haben " + gesamtPunkteSpieler1 + " Punkte.");
        } else {
            System.out.println("\nFehlerhafte Eingabe!");
        }
        scanner.close();
    }
}
 

Macklaire

Mitglied
Wo genau kommt denn die IndexOutOfBoundsException? Also immer auch den Stacktrace mit ausgeben!

Zeige bitte mal den ganzen Code und nicht nur diese Ausschnitte.

Generell ist das keine Exception, die Du fangen solltest sondern es sollte durch Deinen Code nie zu so etwas kommen. Diese Exception ist eine Exception, die geworfen wird, wenn der Entwickler einen Fehler gemacht hat.
Wie gebe ich denn Stacktrace aus?
 
K

kneitzel

Gast
Das Problem ist, dass du bei ungültiger Spieleranzahl keine Spieler eingibst, aber dann im Anschluss mit zwei Spielern etwas machst. Und die gibt es natürlich nicht.

Du darfst natürlich nur etwas mit den Spielern machen, wenn die auch eingegeben wurden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
M Caesar-Verschiebung: IndexOutOfBoundsException bei Verschiebung > array.length Allgemeine Java-Themen 2
S ArrayList add, IndexOutOfBoundsException Allgemeine Java-Themen 4
D indexOutOfBoundsException bei LinkedList Allgemeine Java-Themen 10
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
K Zweifacher Try-Catch Allgemeine Java-Themen 6
ralfb1105 LogManager logger schreibt nicht in Catch() Zweig Allgemeine Java-Themen 2
C try-catch Block Verständnisfrage Allgemeine Java-Themen 14
F Try/catch über ganze Klasse Allgemeine Java-Themen 9
C Unendlich Wiederholungsfehler bei try catch - Block Allgemeine Java-Themen 3
H try catch Allgemeine Java-Themen 4
V Designfrage: try-catch-throws Allgemeine Java-Themen 11
E Immer nur der Catch-Zweig Allgemeine Java-Themen 3
N String aus Try/Catch-Block übernehen Allgemeine Java-Themen 14
B Execption auf Oberfläche werfen, try-catch-Block Allgemeine Java-Themen 6
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
R return in try-catch-Blöcken Allgemeine Java-Themen 6
I Exceptions - weder catch- noch finally-Klausel funktioniert Allgemeine Java-Themen 12
F try und catch Blöcke Allgemeine Java-Themen 3
Final_Striker Exceptionhandling: Richtige Verwendung des Try/Catch Blocks Allgemeine Java-Themen 14
M Try-Catch: wie wird Variable bei Exception initialisiert? Allgemeine Java-Themen 8
P Methodenaufruf von catch Allgemeine Java-Themen 2
S native methoden in try / catch ? Allgemeine Java-Themen 3
V Was tun mit "nötigen" Catch-Blöcken? Allgemeine Java-Themen 3
V Try-Catch und Code der folgt? Allgemeine Java-Themen 3
B Try/Catch in While-Schleife mit Scanner - Hilfe! Allgemeine Java-Themen 3
E try/catch Block um ganzes Programm Allgemeine Java-Themen 10
T rießiger try - catch - Block Allgemeine Java-Themen 13
M try-catch (Wie erzwing ich die catch-Anweisung)? Allgemeine Java-Themen 13
L Try ... Catch Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben