Хорошо, ОП говорил о желании узнать об обоих переполнении стека, так и переполнения арифметики, а также их соответствующим подведем. Вот идет ....
int
содержит значения между -2 31 и 2 31 -1, включительно. Если ваш номер пройдет через эти ограничения, возникает переполнение, а число «Обертывает». Это не вызывает генерировать исключение в Java. StackoverFerroor
, когда это произойдет. Чтобы ответить на другой вопрос ОП (см. Комментарии), когда вы расхождете границы массива, выдается IndexOutoFBoundSexception
.
в арифметике Java, переполнение или нижний предел никогда бросает исключение. Вместо этого для арифметики с плавающей точкой значение устанавливается как , а не число
, «бесконечно» или ноль.
Чтобы проверить их, вы можете использовать статические методы: 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");
}
Для определенных операций вы можете получить ARITHMETECEXCECTION , например, когда делится на ноль
в целочисленной математике.
Я только что спросил , связанный с ними о полном способе стиля проекта, чтобы обработать это.