D
Destiny1985
Gast
Also, habe folgenden Code
Wenn ich jetzt eine Bank anlege und ins menü gehe, wo ich zu der bank verzweige, zeigt er mir korrekt diesen einen eintrag. mit 1 würde ich diese bank dann auch korrekt auswählen. mit 2 macht er logischerweise eine
Das Ding ist aber, ich hab keine Ahnung wie ich diese IndexOutOfBoundsException abfangen soll. Hab aus lauter Verzweifelung bei jedem try-catch-Block ein
mit reingenommen. Meinem Verständnis nach sollte er nun, wenn man eine 2 eingibt, das wort "test" statt dem Fehler ausgeben...macht er aber nicht, sondern immer wieder den fehler.
was mache ich falsch ?
Code:
import java.util.List;
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.lang.IndexOutOfBoundsException;
public class Bankverwaltung {
static String inData;
static BufferedReader userIn =
new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) {
int menueWahl = 0;
Bank aktiveBank = null;
List banken = new ArrayList();
while (menueWahl != 4) {
Leerzeilen();
menueWahl = bankMenue();
switch (menueWahl) {
case 1: banken = bankAnlegen(banken); break;
case 2 : System.out.print("2"); break;
case 3 : aktiveBank = bankAuswahl(banken); break;
case 4 : programmEnde(); break;
}
}
}
public static int bankMenue() {
int menueWahl = 0;
System.out.println("*** Bankverwaltung ***\n");
System.out.println("[1] - Neue Bank anlegen");
System.out.println("[2] - Bank editieren");
System.out.println("[3] - Zu einer Bank verzweigen");
System.out.println("[4] - Programm beenden");
System.out.print("\nIhre Wahl: ");
try {
inData = userIn.readLine();
}
catch (IOException e1) {
System.out.print("*** FEHLER: IOException in bankMenue ***");
}
catch (IndexOutOfBoundsException e2) {
System.out.println("test");
}
menueWahl = Integer.parseInt(inData);
return menueWahl;
}
public static List bankAnlegen(List banken) {
String name = "", blz = "";
Leerzeilen();
System.out.println("Neue Bank anlegen");
System.out.println("=================\n");
System.out.print("Name der Bank: ");
try {
name = userIn.readLine();
}
catch (IOException e1) {
System.out.println("*** FEHLER: IOException in bankAnlegen");
}
System.out.print("Bankleitzahl: ");
try {
blz = userIn.readLine();
}
catch (IOException ex) {
System.out.println("*** FEHLER: IOException in bankAnlegen");
}
Bank bank = new Bank(name, blz);
banken.add(bank);
return banken;
}
public static Bank bankAuswahl(List banken) {
int bankWahl = 0;
Bank aktiveBank;
Leerzeilen();
System.out.println("Zu einer Bank verzweigen");
System.out.println("========================\n");
for (int i = 0; i <= banken.size() - 1; i++) {
System.out.println("[" + (i+1) + "] - " + banken.get(i));
}
try {
System.out.print("\nIhre Wahl: ");
inData = userIn.readLine();
bankWahl = Integer.parseInt(inData);
}
catch (IOException e1) {
System.out.println("*** FEHLER: IOException in bankAuswahl ***");
}
catch (IndexOutOfBoundsException e2) {
System.out.println("test");
}
aktiveBank = (Bank) banken.get((bankWahl - 1));
return aktiveBank;
}
public static void programmEnde() {
Leerzeilen();
System.out.println("*** Das Programm wird nun beendet ***");
System.exit(0);
}
public static void Leerzeilen() {
for (int i = 1; i <= 30; i++) {
System.out.println();
}
}
}
Wenn ich jetzt eine Bank anlege und ins menü gehe, wo ich zu der bank verzweige, zeigt er mir korrekt diesen einen eintrag. mit 1 würde ich diese bank dann auch korrekt auswählen. mit 2 macht er logischerweise eine
Code:
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.RangeCheck(ArrayList.java:507)
at java.util.ArrayList.get(ArrayList.java:324)
at Bankverwaltung.bankAuswahl(Bankverwaltung.java:127)
at Bankverwaltung.main(Bankverwaltung.java:42)
Exception in thread "main"
Das Ding ist aber, ich hab keine Ahnung wie ich diese IndexOutOfBoundsException abfangen soll. Hab aus lauter Verzweifelung bei jedem try-catch-Block ein
Code:
catch (IndexOutOfBoundsException e2) {
System.out.println("test");
}
mit reingenommen. Meinem Verständnis nach sollte er nun, wenn man eine 2 eingibt, das wort "test" statt dem Fehler ausgeben...macht er aber nicht, sondern immer wieder den fehler.
was mache ich falsch ?