From 1f4ce06b09f858b588f225855436de7527406ec0 Mon Sep 17 00:00:00 2001 From: nikow Date: Tue, 8 Nov 2022 13:36:16 +0100 Subject: [PATCH] Exceptions --- .../informatik/bank/facade/Banksystem.java | 5 +++++ .../bank/infrastructure/Persistenz.java | 8 +++++++- .../src/de/hs_mannheim/informatik/bank/ui/UI.java | 15 +++++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 5ff5144..cef1062 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -92,4 +92,9 @@ public class Banksystem { return konto.berechneSaldo(anzahl); } + public void systemwiederherstellung() throws ClassNotFoundException, Exception{ + this.bank = (Bank) Persistenz.ladeBankDaten(bank.getName()); + + } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java index 5d08e48..6ec2830 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java @@ -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(); diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index 3f10d79..5f8cc2f 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -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: ");