Выход из программы при невыполнении условия if
Пытаюсь добиться того, чтобы после введения пустого имени или отрицательного возраста не только на экране отображалась ошибка, но и прерывалась программа. Пробовала писать слова break после текста ошибки, но выдается сообщение, что break не может быть вне цикла. Что можно сделать?
public class xxx {
public static void main(String[] args) throws IOException {
Cat cat1 = new Cat();
cat1.setName("Kitty");
cat1.setAge(5);
System.out.println(cat1.getName() + ", " + cat1.getAge());
Cat cat2 = new Cat();
cat2.setName("");
cat2.setAge(7);
System.out.println(cat2.getName() + ", " + cat2.getAge());
}
public static class Cat {
private String name;
private int age;
public void setName(String name) {
if (name.isEmpty()) {
System.out.println("Don't enter an empty name!");
} else
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
if (age < 0) {
System.out.println("Enter correct age, please!");
} else
this.age = age;
}
public int getAge() {
return age;
}
}
}
В консоли выводится:
Kitty, 5
Don't enter an empty name!
null, 7
Ответы (2 шт):
System.exit(0) завершит программу с кодом 0. Если вы хотите сообщить ошибке сделай System.exit(1)
При возникновении ошибки лучше кидать (throw) Exception.
При этом ответственность кидающего кода только в том, чтобы прекратить работу и сообщить.
Обычный код не знает о существовании System.out (может у нас сервер) и не имеет права выходить из программы.
Код, который отвечает за программу (например в main) делает try...catch, и уже в catch может решить сделать print и exit.
Mожно создать свои типы ошибок, отнаследованные от Exception.