Я пытаюсь выполнить небольшой код, который сканирует вводимое пользователем значение. Это действие содержится в написанном мною специальном методе с именем getTriangleDim (); метод считывает значение int пользователя, проверяет, находится ли оно в определенном диапазоне, а затем возвращает введенное значение int. Метод отлично работает, и у меня нет с ним проблем.
Проблема возникает, когда я ввожу значение, отличное от int, для моего метода getTriangleDim (). Это дает мне ошибку InputMismatchException. Я написал оператор try-catch в цикле do-while, чтобы попытаться исправить эту проблему. Но это первый раз, когда я использую инструкцию try-catch, и я, очевидно, что-то упускаю.
Вот код для оператора try-catch, вложенного в цикл do-while:
//loop to scan for triangle dimension
boolean bError = true;
int triangle;
do{
try {
triangle = getTriangleDim();
bError=false;
}
catch (Exception e){
System.out.println("You did not enter an integer, please enter an integer value");
triangle = getTriangleDim();
}
}while (bError);
если я проверю его, введя значение char вместо int, он фактически перехватит ошибку один раз, а затем напечатает мой оператор «вы не ...». Но если я снова введу другой номер, не являющийся int, я снова получаю сообщение об ошибке выполнения, в котором говорится ....... вы догадались ........ Ошибка InputMismatchException.
Код моего метода здесь:
//method for scanning triangle dimensions from keyboard
public static int getTriangleDim(){
int triangle = 0;
Scanner keyboard = new Scanner(System.in);
do{
System.out.print("Enter a non-zero integer length (+/-1 - +/-16): ");
triangle = keyboard.nextInt();
if((!(triangle <= 16 && triangle >= 1))&&(!(triangle >= -16 && triangle <= -1)))
System.out.println("Inpute value outside of range");
}while((!(triangle <= 16 && triangle >= 1))&&(!(triangle >= -16 && triangle <= -1)));
return triangle;
}
Мне нужен цикл Do-While для продолжения, но я продолжаю получать эти ошибки.
class NotIntegerException extends Exception { .. }
и перехватить его снаружи, чтобы отличить его от других типов исключений. - person Khaled.K   schedule 25.02.2014