Exceptions

nikow 2022-11-08 13:36:16 +01:00
parent 9d2cdf76da
commit 1f4ce06b09
3 changed files with 25 additions and 3 deletions

View File

@ -92,4 +92,9 @@ public class Banksystem {
return konto.berechneSaldo(anzahl);
}
public void systemwiederherstellung() throws ClassNotFoundException, Exception{
this.bank = (Bank) Persistenz.ladeBankDaten(bank.getName());
}
}

View File

@ -6,6 +6,8 @@ import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import jdk.internal.misc.FileSystemOption;
public class Persistenz {
private static final String BANK_DATEI = "-bank-data.ser";
@ -14,12 +16,16 @@ public class Persistenz {
}
public static void speichereBankDaten(Object bank, String name) throws Exception {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(name + BANK_DATEI));
oos.writeObject(bank);
oos.close();
}
public static Object ladeBankDaten(String name) throws Exception {
public static Object ladeBankDaten(String name) throws Exception, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(name + BANK_DATEI));
Object bank = ois.readObject();
ois.close();

View File

@ -83,7 +83,7 @@ public class UI {
System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt.");
}
private void geldEinzahlen() throws Exception {
private void geldEinzahlen() {
System.out.println("Geld einzahlen");
System.out.print("Bitte die gewünschte Kontonummer eingeben: ");
int kontonummer = Integer.parseInt(sc.nextLine());
@ -92,12 +92,23 @@ public class UI {
System.out.print("Bitte den gewünschten Betrag eingeben: ");
double betrag = Double.parseDouble(sc.nextLine());
try {
long neuerKontostand = bs.geldEinzahlen(kontonummer, (long)betrag * 100);
System.out.printf("Einzahlung erfolgreich, neuer Kontostand = %.2f Euro", (neuerKontostand / 100.0));
}
catch (Exception e) {
System.err.println("Einzahlung nicht erfolgreich, wurde nicht gespeichert");
try {
bs.systemwiederherstellung();
}
catch (Exception cnfe) {
System.err.println("Fehler aufgetreten(ClassNotFoundException)");
}
}
}
private void geldAuszahlen() throws Exception {
System.out.println("Geld auszahlen");
System.out.print("Bitte die gewünschte Kontonummer eingeben: ");