Ich beschäftige mich gerade damit wie man Exceptions in Interfaces handeln könnte und stoße nur auf Verwirrung.
Nehmen wir an ich habe folgendes Interface:
und die Methode in einer implementierenden Klasse:
Und der Aufruf in der Main:
Macht es überhaupt Sinn in dem Interface an die Signatur ein throws zu hängen?
Gibt es Fälle in denen es Sinn macht?
Es gibt nämlich mehrere Klassen die das Interface implementieren und mit den Exceptions anders umgehen sollen.
Nehmen wir an ich habe folgendes Interface:
Java:
public interface Zahlung {
boolean willPaymentGoThrough() throws PaymentException;
}
Java:
public boolean willPaymentGoThrough() {
boolean rightAmount = false;
System.out.println("Bitte den Betrag eingeben: ");
Scanner sc = new Scanner(System.in);
this.price = sc.nextDouble();
if (price > 3.0) {
rightAmount = true;
return rightAmount;
} else {
throw new PaymentException("Betrag muss größer als 3€ sein");
}
}
Java:
public static void proceedWithPayment() {
try {
setZahlung(new PayPal());
} catch (PaymentException e) {
System.out.println("Betrag muss größer als 3€ sein");
}
}
public static Zahlung setZahlung(Zahlung zahlung) {
if (zahlung instanceof PayPal) {
PayPal paypal = (PayPal) zahlung;
paypal.willPaymentGoThrough();
return zahlung;
}
Macht es überhaupt Sinn in dem Interface an die Signatur ein throws zu hängen?
Gibt es Fälle in denen es Sinn macht?
Es gibt nämlich mehrere Klassen die das Interface implementieren und mit den Exceptions anders umgehen sollen.