Это мой первый опыт использования обработки исключений, поэтому будьте нежны. У меня есть простой класс blob, который принимает идентификатор, идентификатор должен быть от 30 до 50 или иначе генерируется исключение.while loop с обработкой исключений
public class Blob {
int id;
public Blob() {
}
public Blob(int id) throws Exception {
this.id = id;
if (id < 30 || id > 50)
throw new Exception ("id = " +id+ ", must be between 30 and 50 inclusive");
}
}
Это должно побудить пользователя ввести идентификатор и бросить исключение, если это не от 30 до 50 лет, и следует продолжать до тех пор, пока пользователь не введет правильный вход, а затем просто отображает номер документа.
public class BlobCreator {
public static void main(String[] args) {
int id;
Scanner scan = new Scanner(System.in);
System.out.println("Enter ID number: ");
id = scan.nextInt();
do {
try {
Blob b = new Blob(id);
}
catch (Exception e) {
System.out.println(e);
}
System.out.println("Enter a different ID: ");
id = scan.nextInt();
}
while(true);
}
System.out.println("Blob ID: " +id);
}
Я думаю, что я использую бросок и поймать правильно, но мой цикл не работает должным образом, так что я думаю, что должно быть простое исправление, но я не могу получить это только право. Также используется цикл while, так как у меня есть лучший способ для этой ситуации или есть лучший способ петли через бросок и улов?
Спасибо за любую помощь
Изменен ответ ... –
Да, такая же проблема, когда я делаю так. – user2745043
Вторая модификация, вы должны, конечно, сканировать другой идентификатор ... :(мой плохой ... –