Der folgende Code ist Teil eines Programms, das eine IllegalArgumentException auslösen soll, wenn der angegebene Wert außerhalb des gültigen Bereichs liegt. Wenn jedoch die angegebenen Zahlen in setTime() außerhalb des gültigen Bereichs liegen, wird der entsprechende Wert zurückgegeben, wenn das Objekt in der main-Methode anstelle der gewünschten Fehlermeldung erstellt wurde. was ist der GrundIllegalArgumentException gibt den in object declueration angegebenen Wert zurück
hier ist der Code:
public class MyTime {
private int hour = 0;
private int minute = 0;
private int second = 0;
public static void main (String [] args) {
// when the value is out of range in setTime(), the value given bellow in t1 is returned
MyTime t1 = new MyTime (10,10,10);
t1.setTime(26, 23, 14);
System.out.println("toString(): " + t1);
}
public MyTime (int hour, int minute, int second) {
this.hour = hour;
this.minute = minute;
this.second = second;
}
public void setTime (int hour, int minute, int second) {
try {
if (hour > 0 && hour < 23) {
this.hour = hour;
}
if (minute > 0 && minute < 59) {
this.minute = minute;
}
if (second > 0 && second < 59) {
this.second = second;
}
}
catch (IllegalArgumentException exception) {
System.out.println("Invalid entry");
}
}
Ihr Code tut nichts, wenn die Werte außerhalb des Bereichs liegen. Es muss die Ausnahme auslösen, aber Sie ignorieren nur die Werte, wenn sie ungültig sind. –
Soll der Code auf magische Weise wissen, dass er eine bestimmte Ausnahme auslösen muss, wenn er eine "if" Bedingung nicht erfüllt? – John3136
also sollte ich den Ausnahmefehler hinzufügen! – zamzam