Fix: code refactor & exception handling

main
Caner 2022-11-27 15:51:49 +01:00
parent 91ffe2cfab
commit 9ad8c5760b
1 changed files with 160 additions and 25 deletions

View File

@ -426,6 +426,9 @@ public class UI {
continue; continue;
} }
} else {
System.out.println("Kontonummer existiert nicht!");
break;
} }
} catch (NumberFormatException nfe) { } catch (NumberFormatException nfe) {
@ -471,6 +474,9 @@ public class UI {
continue; continue;
} }
} else {
System.out.println("Kontonummer existiert nicht!");
break;
} }
} catch (NumberFormatException nfe) { } catch (NumberFormatException nfe) {
@ -529,52 +535,181 @@ public class UI {
} }
private void überweisungBeauftragen() throws Exception { private void überweisungBeauftragen() throws Exception {
System.out.print("Bitte die Kontonummer des Ausgangskontos der Überweisung eingeben: ");
int startkonto = Integer.parseInt(sc.nextLine());
System.out.print("Bitte die Kontonummmer für das Zielkonto der Überweisung eingeben: "); boolean running = true;
int zielkonto = Integer.parseInt(sc.nextLine()); int startkonto = 0;
int zielkonto = 0;
double betrag = 0;
String verwendungszweck = "";
System.out.print("Bitte den gewünschten Überweisungsbetrag eingeben: "); while (running) {
double betrag = Double.parseDouble(sc.nextLine());
System.out.print("Bitte den Verwendungszweck eingeben: "); System.out.print("Bitte geben Sie die Kontonummer des Ausgangskontos der Überweisung ein: ");
String verwendungszweck = sc.nextLine();
try {
startkonto = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(startkonto)){
System.out.print("Bitte geben Sie die Kontonummer des Zielkontos der Überweisung ein: ");
try {
zielkonto = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(zielkonto)){
System.out.print("Bitte geben Sie den gewünschten Überweisungsbetrag ein: ");
try {
betrag = Double.parseDouble(sc.nextLine());
} catch (Exception e) {
System.err.println("Betrag muss eine Zahl sein!");
e.printStackTrace();
break;
}
System.out.print("Bitte geben Sie den Verwendungszweck ein: ");
verwendungszweck = sc.nextLine();
} else {
System.out.println("Zielkonto existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Startkonto existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long) (betrag * 100), verwendungszweck); boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long) (betrag * 100), verwendungszweck);
System.out.println("Überweisung" + ((!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); System.out.println("Überweisung" + ((!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt.");
} }
private void saldoAbfragen() { private void saldoAbfragen() {
System.out.print("Bitte die Kontonummer des gewünschten Kontos eingeben: ");
int konto = Integer.parseInt(sc.nextLine());
System.out.print("Bitte die Anzahl der Kontobewegungen für den Saldo eingeben: "); boolean running = true;
int anzahl = Integer.parseInt(sc.nextLine()); int kontonummer = 0;
int anzahl = 0;
long saldo = bs.saldoBestimmen(konto, anzahl); while(running) {
System.out.print("Geben Sie bitte die Kontonummer des gewünschten Kontos ein: ");
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.print("Bitte geben Sie die Anzahl der Kontobewegungen für den Saldo ein: ");
try {
anzahl = Integer.parseInt(sc.nextLine());
} catch (Exception e) {
System.err.println("die Anzahl muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Kontonummer existiert nicht");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
long saldo = bs.saldoBestimmen(kontonummer, anzahl);
System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo / 100d)); System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo / 100d));
} }
private void aktienKaufen() { private void aktienKaufen() {
boolean running = true;
int kontonummer = 0;
int anzahl = 0;
String aktienName = "";
while (running) {
System.out.println("Aktien kaufen"); System.out.println("Aktien kaufen");
System.out.println("Bitte geben Sie die Kontonummer ein: "); System.out.print("Bitte geben Sie die Kontonummer ein: ");
int kontonummer = Integer.parseInt(sc.nextLine());
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.println("Folgende Aktien sind Verfügbar"); System.out.println("Folgende Aktien sind Verfügbar");
System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)"); System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)");
System.out.println("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:"); System.out.print("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:");
String aktienName = sc.nextLine();
aktienName = sc.nextLine();
System.out.println("Preis der Aktie"); System.out.println("Preis der Aktie");
System.out.println(bs.getAktienPreis(aktienName)); System.out.println(bs.getAktienPreis(aktienName));
System.out.println("Bitte geben Sie die Anzahl der Aktien ein, die Sie kaufen möchten: "); System.out.print("Bitte geben Sie die Anzahld er Aktien ein, die sie kaufen möchten: ");
int anzahl = Integer.parseInt(sc.nextLine());
try {
anzahl = Integer.parseInt(sc.nextLine());
} catch (Exception e) {
System.err.println("Die Anzahl muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Kontonummer existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName); boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName);
System.out.printf("Aktienkauf" + ((!erg)? " nicht" : "" ) + " erfolgreich. "); System.out.printf("Aktienkauf" + ((!erg)? " nicht" : "" ) + " erfolgreich. ");