Baza Wiedzy

ArithmeticException

Opis🔗

ArithmeticException jest wyjątkiem z grupy wyjątków niekontrolowanych (dziedziczących po RuntimeException) i występuje najczęściej w sytuacji, gdy próbujemy wykonać niedozwoloną operację matematyczną.

Wyjątek znajduje się w pakiecie java.lang więc pełna ścieżka do klasy to java.lang.ArithmeticException.

arithmeticexception hierarchy

Najpopularniejszą sytuacją, kiedy wyjątek ten jest generowany jest próba dzielenia całkowitoliczbowego przez 0.

 

Przykład🔗

package pl.javastart.exception.arithmeticexception;

public class ArithmeticExceptionExample {

	public static void main(String[] args) {
		int x = 10;
		int y = 0;
		int divide = x / y;
		System.out.println(divide);
	}

}

Przy próbie uruchomienia w 8 wierszu zostanie rzucony wyjątek Exception in thread "main" java.lang.ArithmeticException: / by zero.

Kurs Java

Co ciekawe w sytuacji dzielenia liczb zmiennoprzecinkowych przy dzieleniu przez 0 (a właściwie 0.0) wyjątek nie jest generowany, zamiast tego otrzymujemy wartość Infinity.

Najprostszym sposobem poradzenia sobie z wyjątkiem jest jego obsługa w bloku try catch:

package pl.javastart.exception.arithmeticexception;

public class ArithmeticExceptionExample {

	public static void main(String[] args) {
		int x = 10;
		int y = 0;
		try {
			int divide = x / y;
			System.out.println(divide);
		} catch(ArithmeticException e) {
			System.err.println("You can't divide by 0");
		}
	}

}

exception console

Przykłady na Github

Najlepszy newsletter o Javie w Polsce

Czy chcesz otrzymywać nowości ze świata Javy oraz przykładowe pytania rekrutacyjne? Zapisz się na newsletter i bądź na bieżąco! Otrzymasz także ekskluzywne materiały oraz informacje o nowych kursach i promocjach.

Nikomu nie udostępniamy Twojego maila, a jeśli zechcesz to w każdej chwili możesz się wypisać.

Komentarze do artykułu

Wyłączyliśmy możliwość dodawania komentarzy. Poniżej znajdziesz archiwalne wpisy z czasów gdy strona była jeszcze hobbystycznym blogiem. Zapraszamy natomiast do zadawnia pytań i dyskusji na naszej grupe na facebooku.