Frage zum abfangen von Exceptions

Status
Nicht offen für weitere Antworten.
D

Destiny1985

Gast
Also, habe folgenden Code

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 ?
 
B

bygones

Gast
du musst dir ueberlegen, wo eine solche exception auftreten kann.

IndexOutOfBounds heisst ja, du greifst auf einen index zu den es nicht gibt.
Code:
System.out.print("\nIhre Wahl: ");
          inData = userIn.readLine();
          bankWahl = Integer.parseInt(inData);
hier wo du das catch machst greifst du aber nirgends auf einen index zu -> kann hier nicht die Exception geworfen werden

Code:
aktiveBank = (Bank) banken.get((bankWahl - 1));
hier wo du auf einen Index zugreifst (get(int index)) hast du keinen catch Block....
 
D

Destiny1985

Gast
hm, die try - catch blöcke hat mir borland eingefügt, hab' mal drauf vertraut ;)

ok versuchs mal !
 
D

Destiny1985

Gast
Hab es jetzt wie folgt, geändert hat sich aber nichts. Er knallt mir weiter den "originalen" Error raus

Code:
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++) {
          try {
              System.out.println("[" + (i+1) + "] - " + banken.get(i));  
          }
          catch (IndexOutOfBoundsException e2) {
              System.out.println("MUH");  
          }
      }
      try {
          System.out.print("\nIhre Wahl: ");
          inData = userIn.readLine();
          bankWahl = Integer.parseInt(inData);
      }
      catch (IOException e1) {
          System.out.println("*** FEHLER: IOException in bankAuswahl ***");
      }

      aktiveBank = (Bank) banken.get((bankWahl - 1));

      return aktiveBank;
    }
 

Oni

Top Contributor
ich glaube er meinte das du das in einen try-catch block packen solltest
Code:
aktiveBank = (Bank) banken.get((bankWahl - 1));
 
D

Destiny1985

Gast
habs in einem anderen thread glaub schonmal gesagt

ich bin zZ heftig unkonzentriert irgendwie :(

thx...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Frage zum Abfangen ungültiger Werte Java Basics - Anfänger-Themen 9
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
F Frage betreff Programmierbücher zu Lagerverwaltung als Konsolenprogramm Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
I String.split regex Frage Java Basics - Anfänger-Themen 2
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
J Frage zum Loggen Java Basics - Anfänger-Themen 18
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
B Erste Schritte Learning Coding (!) Frage an erfahrene Programmierer. Java Basics - Anfänger-Themen 23
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
C Exception-Frage Java Basics - Anfänger-Themen 3
J Eine Frage zur Schreibweise == ? : Java Basics - Anfänger-Themen 3
S Frage des Designs Java Basics - Anfänger-Themen 1
JavaTalksToMe Extends/Implements Frage Java Basics - Anfänger-Themen 3
pkm Frage zu Servletfunktion Java Basics - Anfänger-Themen 0
B Frage zur Währungsumrechnung Java Basics - Anfänger-Themen 3
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
D Frage zur IDE IntelliJ IDEA Java Basics - Anfänger-Themen 6
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
N Frage zum Newton-Fraktal Java Basics - Anfänger-Themen 1
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
I Frage zu SkipList Java Basics - Anfänger-Themen 4
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
Kirby.exe Allgemeine Frage Java Basics - Anfänger-Themen 3
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
F Frage zu Iteratoren Java Basics - Anfänger-Themen 2
C Erste Schritte Frage zur ArrayList Java Basics - Anfänger-Themen 15
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
H Frage zur ermittlung eines doppelte Paars aus Sotieralgorithmus Java Basics - Anfänger-Themen 4
H Frage zum Array Java Basics - Anfänger-Themen 17
G Schach -Frage 2- Maussteuerung Java Basics - Anfänger-Themen 7
G Schach in Java - Allgemeine Frage zur Architektur Java Basics - Anfänger-Themen 7
B Fachliche Frage bei Rechnungen Java Basics - Anfänger-Themen 16
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 2
H Einfache Frage zur Punktnotation objektname.methode(wert) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben