Commit 2a0834a9 by Patryk Czarnik

Konto - wersja z wyjątkami

parent 79e29206
package p06_enkapsulacja;
public class BrakSrodkow extends Exception {
public BrakSrodkow(String message) {
super(message);
}
}
......@@ -35,21 +35,30 @@ public class Konto {
return saldo;
}
public boolean wplata(int kwota) {
if(kwota > 0) {
saldo += kwota;
return true;
} else {
System.err.println("Kwota wpłaty nie jest dodatnia");
return false;
public void wplata(int kwota) {
if(kwota <= 0) {
throw new IllegalArgumentException("Kwota wpłaty nie jest dodatnia");
}
saldo += kwota;
}
public void wyplata(int kwota) {
public void wyplata(int kwota) throws BrakSrodkow {
if(kwota <= 0) {
throw new IllegalArgumentException("Kwota wypłaty nie jest dodatnia");
}
if(kwota > saldo) {
throw new BrakSrodkow("Za mało środków na koncie nr " + numer);
}
saldo -= kwota;
}
public void przelew(Konto cel, int kwota) {
public void przelew(Konto cel, int kwota) throws BrakSrodkow {
if(kwota <= 0) {
throw new IllegalArgumentException("Kwota przelewu nie jest dodatnia");
}
if(kwota > saldo) {
throw new BrakSrodkow("Za mało środków na koncie nr " + numer);
}
this.saldo -= kwota;
cel.saldo += kwota;
}
......
......@@ -30,11 +30,8 @@ public class ProgramBankowy {
System.out.print("Podaj kwotę wpłaty: ");
kwota = sc.nextInt();
sc.nextLine();
if(konto.wplata(kwota)) {
System.out.println("Pieniądze zostały wpłacone");
} else {
System.out.println("nie ma wpłaty");
}
konto.wplata(kwota);
System.out.println("Pieniądze zostały wpłacone");
}
case "Y" -> {
System.out.print("Podaj kwotę wypłaty: ");
......@@ -51,11 +48,11 @@ public class ProgramBankowy {
}
}
// Jeśli o różnych sytuacjach błędnych będą informować wyjątki różnych klas,
// to w programie możemy te sytuacje rozróżnić i obsłużyć w róznych catchach
// to w programie możemy te sytuacje rozróżnić i obsłużyć w różnych catchach
} catch(IllegalArgumentException e) {
System.out.println("Niepoprawny argument: " + e.getMessage());
// } catch(BrakSrodkow e) {
// System.out.println(e.getMessage());
} catch(BrakSrodkow e) {
System.out.println(e.getMessage());
} catch(Exception e) {
System.out.println("Inny błąd: " + e);
}
......
......@@ -32,10 +32,20 @@ public class Przyklad {
System.out.println(a);
System.out.println(b);
a.wplata(500);
b.wyplata(300);
try {
b.wyplata(300);
System.out.println("Wypłata 500 OK");
} catch (BrakSrodkow e) {
System.out.println(e.getMessage());
}
System.out.println(a);
System.out.println(b);
a.przelew(b, 1000);
try {
a.przelew(b, 1000);
System.out.println("prelew 1000 OK");
} catch (BrakSrodkow e) {
e.printStackTrace();
}
System.out.println(a);
System.out.println(b);
System.out.println();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment