ArithmeticException
Возникает при недопустимой арифметической операции, например целочисленном делении на ноль.
Доступно с: Java 1.0
Синтаксис
public class ArithmeticException extends RuntimeExceptionПримеры
Деление на ноль: целые и дробные числа:
void main() {
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
IO.println(e.getMessage());
}
IO.println(10.0 / 0);
}Результат:
/ by zero
InfinityПереполнение с Math.addExact():
void main() {
try {
Math.addExact(Integer.MAX_VALUE, 1);
} catch (ArithmeticException e) {
IO.println(e.getMessage());
}
}Результат:
integer overflowПримечания
Деление double на ноль не бросает исключение, а даёт Infinity или NaN. Обычное переполнение int тоже проходит молча; чтобы получить исключение, используйте Math.addExact(), Math.multiplyExact(). Лучше проверить делитель заранее, чем ловить это исключение.
См. также
- RuntimeException — Базовый класс непроверяемых исключений — ошибок в логике программы.
- NumberFormatException — Возникает, когда строку нельзя превратить в число.
Вопросы и ответы по теме
В учебнике
- Что такое исключения — Исключения в Java — как программа сообщает об ошибке, как читать трассировку стека, частые исключения и иерархия Throwable.