Java 除零异常处理不起作用
当我尝试除以0时,结果显示无穷大,它不会打印行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将导致错误
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值
。