Új hozzászólás Aktív témák
-
ArchElf
addikt
válasz
Yodafon
#1558
üzenetére
Persze, berakod egy try/catch-be, és a catch-ben elkapod az ArithmeticException kivételt:
private void szamol(){
try{
c=a/b;
if (c == Double.POSITIVE_INFINITY || c == Double.NEGATIVE_INFINITY) throw new ArithmeticException("Nullával osztottunk!");
}catch(ArithmeticException ex){
System.out.println(ex.getMessage());
}
}AE
-
ArchElf
addikt
válasz
Yodafon
#1556
üzenetére

1) Lebegőpontos számokkal számolva a nullával való osztás nem hiba, hanem helyesen VÉGTELEN-t hoz ki eredményül (angolul INFINITY). Integer osztás esetén a változó nem képes felvenni az INFINITY értéket, ezért fut hibára. Ha szeretnéd, hogy lebegőpontos osztásnál is dobjon hibát, akkor neked kézzel kell dobni valahogy így:if (c == Double.POSITVE_INFINITY) throw new ArithmeticException("Nullával osztottunk!");
2) Az e-t ott deklarálod a Catch-ben
Mivel az ArithmeticException nem biztos, hogy nullával való osztás eredménye, így inkább célszerű az e.getMessage() értékét kiiratni.AE
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Lenovo 14 Thinkbook 2in1 Yoga FHD IPS Touch i7-1165G7 16GB 512GB Intel IrisXE AktívToll W11 Garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3693
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

Mivel az ArithmeticException nem biztos, hogy nullával való osztás eredménye, így inkább célszerű az e.getMessage() értékét kiiratni.
