Why is the exception not triggered for division by zero here?
exception, java
Solution
A division by zero throws an exception for integer values, but not for floating values. This is defined in the JLS #15.17.2:
The result of a floating-point division is determined by the rules of IEEE 754 arithmetic: [...]
- Division of a nonzero finite value by a zero results in a signed infinity. The sign is determined by the rule stated above.
If you change the type of `a` and `d` to `int`, you will get an exception.
Problem
(This is a follow up question to Why is this exception is not printed? Why is it showing an error?) Here in the below code why is the ArithmeticException not triggered? ``` class Exp { public static void main(String args[]) { float d,a=1; try { d=0; a=44/d; //no exception triggered here.. why? System.out.print("It's not gonna print: a="+a); } catch(ArithmeticException e) { System.out.println("Print exception: "+e); } } } ``` Instead the output is: ``` It's not gonna print: a=Infinity ``` What happens?