Hallo,
ich hänge an den jetzigen Problem schon eine Weile und irgendwie weiß ich nicht was ich falsch mache bzw. an den Code ändern soll.
Ich habe 2 Klassen ErgänztesAuto und ErgänztesAutoTest.
In ErgänztesAuto gibt es eine Methode getAlter() welche das Alter des Autos wiedergibt, hier soll eine Expetion geworfen werden wenn das Alter Negativ ist. Die Exception habe ich in einer inneren Klasse geschrieben. In der ErgenztesAutoTest instanziiere ich ein Objekt und will mir darüber dann das Alter ausgeben lassen. Die Ausgabe erfolgt in einen Try/Catch Block dennoch bekomme ich eine Fehlermeldung welche mir ja besagt dass die Exception nicht geworfen wird was ich nicht verstehe da ja das Alter negativ ist und somit doch die Ausnahme greifen müsste. Könnt Ihr mir weiterhelfen was ich falsch mache? Hier der Code....
Methode getAlter()....
---------------------------------------------------------------
die innere Klasse.....
---------------------------------------------------------------
und das Testobjekt....
---------------------------------------------------------------
sowie die Fehlermeldung beim Kompilieren....
javac ErgaenztesAutoTest.java
ErgaenztesAutoTest.java:24: error: exception FalscheErstzulassungAusnahme is never thrown in body of corresponding try statement
catch (ErgaenztesAuto.FalscheErstzulassungAusnahme e){
^
1 error
---------------------------------------------------------------
Danke schon mal vorab für Eure Hilfe!!!
ich hänge an den jetzigen Problem schon eine Weile und irgendwie weiß ich nicht was ich falsch mache bzw. an den Code ändern soll.
Ich habe 2 Klassen ErgänztesAuto und ErgänztesAutoTest.
In ErgänztesAuto gibt es eine Methode getAlter() welche das Alter des Autos wiedergibt, hier soll eine Expetion geworfen werden wenn das Alter Negativ ist. Die Exception habe ich in einer inneren Klasse geschrieben. In der ErgenztesAutoTest instanziiere ich ein Objekt und will mir darüber dann das Alter ausgeben lassen. Die Ausgabe erfolgt in einen Try/Catch Block dennoch bekomme ich eine Fehlermeldung welche mir ja besagt dass die Exception nicht geworfen wird was ich nicht verstehe da ja das Alter negativ ist und somit doch die Ausnahme greifen müsste. Könnt Ihr mir weiterhelfen was ich falsch mache? Hier der Code....
Methode getAlter()....
Java:
public int getAlter() {
// Ermittlung des aktuellen Jahres
Calendar aktuellerKalender = Calendar.getInstance();
int aktuellesJahr = aktuellerKalender.get(Calendar.YEAR);
if (this.erstzulassung > aktuellesJahr) {
throw new FalscheErstzulassungAusnahme ("Der Kilometerstand kann nicht negativ sein!");
}
return aktuellesJahr - this.erstzulassung;
}
---------------------------------------------------------------
die innere Klasse.....
Java:
static class FalscheErstzulassungAusnahme extends Exception {
FalscheErstzulassungAusnahme(String s) {
super(s);
}
}
---------------------------------------------------------------
und das Testobjekt....
Java:
ErgaenztesAuto ferrari = new ErgaenztesAuto ("Sebastian Vettel", "Ferrari", "Rot", 2020, 970, 201, "Berlin", "SF16-H");
try{
System.out.println ("Alter des Ferrari: " + ferrari.getAlter());}
catch (ErgaenztesAuto.FalscheErstzulassungAusnahme e){
System.out.println(e.getMessage());
}
---------------------------------------------------------------
sowie die Fehlermeldung beim Kompilieren....
javac ErgaenztesAutoTest.java
ErgaenztesAutoTest.java:24: error: exception FalscheErstzulassungAusnahme is never thrown in body of corresponding try statement
catch (ErgaenztesAuto.FalscheErstzulassungAusnahme e){
^
1 error
---------------------------------------------------------------
Danke schon mal vorab für Eure Hilfe!!!
Zuletzt bearbeitet von einem Moderator: