Перепробовал довольно много разных вариантов проверки чисел. С учётом нулём, без учёта нуля, с блоками try-catch, без них - не работает, вообще не понимаю что не так, в итоге код превратился в свалку, работает, но валидацию так и не проходит.
package com.javarush.task.task14.task1420;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
НОД
*/
public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int iNum1 = Integer.parseInt(reader.readLine());
int iNum2 = Integer.parseInt(reader.readLine());
if (iNum1 < 0)
iNum1 = -iNum1;
if (iNum1 < 0)
throw new Exception();
if (iNum2 < 0)
iNum2 = -iNum2;
if (iNum2 < 0)
throw new Exception();
if (iNum1 > 0 && iNum2 > 0)
{
while(iNum1 != iNum2)
{
if (iNum1 > iNum2)
iNum1 -= iNum2;
else iNum2 -= iNum1;
}
System.out.println(iNum1);
}
else if (iNum1 == 0 || iNum2 == 0) System.out.println(0);
}
}