Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

try-catch for division by zero

My question is about try-catch blocks on a simple division by zero example. You see the first line of try? If I cast any of those two variables to the double the program does not recognize the catch block. In my opinion, whether I cast or not only the catch block must be executed. What is wrong on this code?

public static void main(String[] args) {

    int pay=8,payda=0;  

    try {

        double result=pay/(double)payda; // if I cast any of the two variables, program does not recognize the catch block, why is it so?
        System.out.println(result);
        System.out.println("inside-try");

    } catch (Exception e) {

        System.out.println("division by zero exception");
        System.out.println("inside-catch");

    }
}
like image 910
Firat Avatar asked Feb 13 '10 21:02

Firat


People also ask

How do you catch a divide by zero exception?

The Division function checks if the denominator passed is equal to zero if no it returns the quotient, if yes it throws a runtime_error exception. This Exception is caught by the catch block which prints the message “Exception occurred” and then calls the what function with runtime_error object e.

Is division by 0 allowed in Java?

Values like INFINITY and NaN are available for floating-point numbers but not for integers. As a result, dividing an integer by zero will result in an exception. However, for a float or double, Java allows the operation. The complete code is available over on GitHub.

Is divide by zero a trap?

When divide by zero operation is performed, a trap is generated i.e. INT0 is sent to the processor and ultimately SIGFPE signal is sent to the process that performed the operation.

What kind of exception is divide by 0?

Hence, if any number is divided by zero, we get the arithmetic exception .


1 Answers

Divide by zero is valid for floating point numbers.

  • 1/0 yields Infinity.
  • (-1)/0 yields -Infinity.
  • 0/0 yields NaN.

These "numbers" are properly defined in IEEE 754.

Integer division by zero, on the other hand, throws because one cannot represent infinity as an int.

like image 120
kennytm Avatar answered Oct 05 '22 04:10

kennytm