Хотя значение вычисляет, введенные цифры на "меньше нуля" проверяет.
package com.javarush.task.task14.task1420;
/*
НОД
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = 0;
int b = 0;
int c = 0;
List<Integer> list = new ArrayList<>();
try {
a = Integer.parseInt(reader.readLine());
b = Integer.parseInt(reader.readLine());
if (a<=0 || b<=0){
throw new Exception();
}
} catch (Exception e) {
System.out.println(e);
}
for (int i = 1; i < a && i < b; i++) {
if (a % i == 0 && b % i == 0) {
list.add(i);
}
}
for (int i = 0; i < list.size(); i++) {
c = Math.max(c, list.get(i));
}
System.out.println(c);
}
}