Wyjątek ArithmeticException

0

Dlaczego ten kod NIE RZUCA wyjątku ArithmeticException??

public class NewClass {
    public static void main(String[] args) {

         double tablica[] = {1.2, 3.4, 0.0, 5.6};
        
        for (int i = 0; i < tablica.length; i++) {
                tablica[i] = 1.0 / tablica[i];
            }
        
    }
    
}
0

Ponieważ działasz na floatach. Gdybyś dodal wypisywanie wyniku to dostałbyś coś takiego: http://ideone.com/iaudxc

0

A oprócz zmiany na inty, da się jakoś taki wyjątek wychwycić przy liczbach double?

0
try {
        for (int i = 0; i < tab.length; i++) {
            tab[i] = 1.0 / tab[i];

            if (tab[i] == Double.POSITIVE_INFINITY ||
                    tab[i] == Double.NEGATIVE_INFINITY)
                throw new ArithmeticException();
        }
    } catch (ArithmeticException ae) {
        System.out.println("ArithmeticException occured!");
    }
0

Są metody Double.isInfinite, zarówno statyczne (dla małych double'i) jak i niestatyczne (dla dużych Double'i). Istnieją też funkcje Double.isNaN - liczba typu float lub double może przyjąć wartość NaN w niektórych przypadkach, np dzielenie 0.0/0.0: http://ideone.com/x8VNrc

1 użytkowników online, w tym zalogowanych: 0, gości: 1