Этот код должен перехватывать исключения при делении 24 на предоставленный знаменатель из входного потока. Он должен перехватывать исключения, например, при делении на 0, если пользователь вводит такое слово, как «привет», или что-то еще странное, что может ввести пользователь. Также при вводе десятичного числа возвращаемое значение должно быть целым числом. Если какое-либо исключение перехвачено, программа должна попросить пользователя ввести другое целое число до тех пор, пока не будет введено допустимое.
Проблема, с которой я сталкиваюсь, заключается в том, что программа не улавливает исключение, в котором может быть введено слово или может быть введено десятичное число. Что я делаю не так.
public class Division {
public int quotient(int numerator){
boolean flag = false;
Scanner s = new Scanner(System.in);
int denom = 0;
while(flag==false){
denom = Integer.parseInt(s.next());
try{
int q = numerator/denom;
} catch(NumberFormatException nfe){
System.out.print("Enter an integer:");
continue;
} catch(InputMismatchException ime){
System.out.print("Enter an integer:");
continue;
} catch(ArithmeticException ae){
System.out.print("Enter a non-zero integer:");
continue;
}
flag=true;
}
return numerator/denom;
}
public static void main(String[] args) {
System.out.print("Enter an integer (although you can make mistakes): ");
System.out.println("The quotient is " + new Division().quotient(24));
System.out.println("Done!");
}
}