В арифметике Java переполнение или недостаточное значение никогда не вызовет исключение. Вместо этого для арифметики с плавающей запятой значение устанавливается как Not a number
, «бесконечно» или ноль.
Чтобы проверить их, вы можете использовать статические методы: isNaN или isInfinite с использованием соответствующих классов-оболочек. Вы можете справиться с этим соответствующим образом. Пример:
double d1 = 100 / 0.;
if (Double.isNaN(d1)) {
throw new RuntimeException("d1 is not a number");
}
if (Double.isInfinite(d1)) {
throw new RuntimeException("d1 is infinite");
}
Для определенных операций вы можете получить ArithmeticException , например, когда dividing by zero
в математике целых чисел.
Я только что задал связанный вопрос о полном стиле проекта, способ справиться с этим.