Приветствую прошу помощи. Не проходит валидацию по условию:
В случае если введенные строки невозможно преобразовать в положительные целые числа, должно возникать исключение.
package com.javarush.task.task14.task1420;
/*
НОД
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
boolean exit = false;
int x = 0;
int y = 0;
boolean checkFirstNumber = false;
boolean checkSecondNumber = false;
while ((!checkFirstNumber) && (!checkSecondNumber)) {
try {
if (checkFirstNumber == false) {
x = Integer.parseInt(reader.readLine());
if (x <= 0) {
throw new Exception();
}
checkFirstNumber = true;
}
if (checkSecondNumber == false) {
y = Integer.parseInt(reader.readLine());
if (y <= 0) {
throw new Exception();
}
checkSecondNumber = true;
}
System.out.println(nod(x, y));
}
catch ( Exception ex) {
if (checkFirstNumber == false) { System.out.println("Enter correct FirstNumber");}
else if (checkSecondNumber == false) {System.out.println("Enter correct SecondNumber");}
}
}
}
public static int nod(int x, int y) {
int maximum = x > y ? x : y;
int minimum = x < y ? x : y;
int Nod = 0;
boolean exit = false;
while (!exit) {
if (maximum % minimum == 0) {
Nod = minimum;
exit = true;
} else {
int buffer = maximum % minimum;
maximum = minimum;
minimum = buffer;
}
}
return Nod;
}
}
/*
НОД
Наибольший общий делитель (НОД).
Ввести с клавиатуры 2 целых положительных числа.
Вывести в консоль наибольший общий делитель.
Требования:
1. Программа должна считывать с клавиатуры 2 строки.
2. В случае если введенные строки невозможно преобразовать в положительные целые числа, должно возникать исключение.
3. Программа должна выводить данные на экран.
4. Программа должна выводить на экран наибольший общий делитель(НОД) чисел считанных с клавиатуры и успешно завершаться.
*/