Java 除零异常处理不起作用

Java 除零异常处理不起作用,java,exception,Java,Exception,当我尝试除以0时,结果显示无穷大,它不会打印行 void Division() { try{ Result = x / y; } catch(ArithmeticException e){ System.out.println ("You Shouldn't divide a number by zero"); } write(x, y, "/", Result); } 如果将int除以0,则只会出现0除错误。例如,int a=5/0将导致错误

当我尝试除以0时,结果显示无穷大,它不会打印行

void Division() {
    try{
     Result = x / y;

  }
  catch(ArithmeticException e){
     System.out.println ("You Shouldn't divide a number by zero");
  }
    write(x, y, "/", Result);
}

如果将int除以0,则只会出现0除错误。例如,
int a=5/0
将导致错误。然而,如果你把一个整数除以0.0,那么你得到无穷大。例如,
intb=5/0.0
将获得无穷大。即使
intc=5.5/0.0
也会让你得到无穷大。如果执行
0.0/0.0
,则会得到另一个名为
NaN
的结果。在您的情况下,如果要检查除法是否为0,可以执行以下操作:

if(y == 0.0) {
    System.out.println ("You Shouldn't divide a number by zero");
}

如果操作是整数除法,则会抛出。但是,您可以应用一种变通方法,例如

public class Main {
    public static void main(String[] args) {
        double x = 5;
        double y = 0.0;
        try {
            if (y == 0.0) {
                throw new ArithmeticException("You Shouldn't divide a number by zero");
            } else {
                System.out.println(x / y);
            }
        } catch (ArithmeticException e) {
            System.out.println(e.getMessage());
        }
    }
}
输出:

You Shouldn't divide a number by zero

x和y是什么类型的?x和y是什么类型的double@user如果你把一个整数除以0.0,你会得到infinityeah,把一个非零的数字除以双零,你会得到一个无穷大。如果变量是整数,则会出现异常。所以,如果除以零,双精度值不会显示异常@但是请记住,当一个大x除以一个小y时,结果仍然可以是无穷大。例如
Double.MAX\u值/Double.MIN\u值