Исключение c Long.MAX_VALUE

Необходимо написать метод который считывает из файла числа и находит их сумму, если сумма больше Long.MAX_VALUE.выбросить исключение. Вопрос: как проверить Long.MAX_VALUE и какой класс использовать в самом методе?

Сам метод:

 public static long findSum(String path) throws FileNotFoundException, AccessDeniedException, BadFormatException, MaxValueException, IOException {
        String result1 = readFirstLine(new File("C:\\input.txt"));
        String file1 = result1.replaceAll("\\s+", "");
        long x = Long.parseLong(file1);
        long i = 0;
        while (x != 0) {
            i = i + x % 10;
            x = x / 10;
            if (i > Long.MAX_VALUE)
                throw new MaxValueException("Cумма превышает допустимых значения Long.MAX_VALUE");
        }
        return i;

Ответы (2 шт):

Автор решения: Roman Konoval

Воспользуйтесь тем соображением, что a + b > c, только если a > c - b.

Т.е. перед добавлением к сумме S нового числа X проверьте, что текущая сумма не больше чем MAX_VALUE - X.

→ Ссылка
Автор решения: Sergei Kirjanov

Если нет соревнования на скорость, то работать с BigDecimal, и потом сконвертить longValueExact:

https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#longValueExact()

→ Ссылка