gpt4 book ai didi

java - 如何强制 Java 抛出算术异常?

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:00 25 4
gpt4 key购买 nike

如何强制 Java 在除以 0.0 或从负 double 中提取根时抛出算术异常?代码如下:

   double a = 1; // or a = 0 to test division by 0
double b = 2;
double c = 100;

double d = b*b - 4*a*c;
double x1 = (-b - Math.sqrt(d)) / 2 / a;
double x2 = (-b + Math.sqrt(d)) / 2 / a;

最佳答案

不可能让 Java 为这些操作抛出异常。 Java 实现了 IEEE 754浮点运算标准,它要求这些操作应返回特定的位模式,其含义为“非数字”或“无穷大”。不幸的是,Java 没有实现用户可访问的状态标志或陷阱处理程序,标准描述了这些无效操作。

如果你想特殊对待这些情况,你可以将结果与相应的常数进行比较,如Double.POSITIVE_INFINITY (对于 NaN,您必须使用 isNAN() 方法,因为 NaN != NaN)。请注意,您不必在每个单独的操作之后都进行检查,因为后续操作将保留 NaN 或 Infinity 值。只需检查最终结果。

关于java - 如何强制 Java 抛出算术异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2281275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com