ArithmeticException to wyjątek czasu wykonywania w Javie, który oznacza błąd arytmetyczny. Najczęściej pojawia się przy próbie dzielenia liczby całkowitej przez zero albo obliczania reszty z dzielenia przez zero.
Komunikat:
Exception in thread "main" java.lang.ArithmeticException: / by zero
oznacza, że program wykonał operację dzielenia lub modulo, w której dzielnik miał wartość 0.
Przykład z dzieleniem
int x = 10;
int y = 0;
int wynik = x / y; // ArithmeticException
Przykład z operatorem modulo
int x = 10;
int y = 0;
int reszta = x % y; // ArithmeticException
Operator % zwraca resztę z dzielenia, więc również wymaga poprawnego dzielnika. Jeśli y == 0, program zgłosi wyjątek.
Jak uniknąć błędu?
Przed dzieleniem lub użyciem modulo należy sprawdzić, czy dzielnik nie jest zerem:
if (y != 0) {
int reszta = x % y;
} else {
System.out.println("Nie można dzielić przez zero");
}
Ważne na egzaminie
Jeżeli w treści błędu widzisz ArithmeticException: / by zero, szukaj kodu z operacją:
x / y, gdyymoże być równe0,x % y, gdyymoże być równe0.
Nie należy mylić tego z błędem tablicy, np. tablica[6], który może spowodować ArrayIndexOutOfBoundsException, a nie ArithmeticException.