如何在Java中抛出除以零的异常而不实际除以零?

我有一个I2C设备,需要两个输入:分母和分子。两者均被写入不同的地址,因此不进行实际计算(numerator/denominator)。问题在于,I2C器件上可能会发生被零除的情况,因此需要检查被零除的错误。理想情况下,如果除法是通过Java代码完成的,则将发生完全相同的事情。

目前,我已经绑定了一个用于进行除法运算的未使用变量,但是我担心它会被优化:

public void setKp(int numerator, int divisor)

{

int zeroCheck = numerator / divisor;

//... doesn't use zeroCheck

}

当然,有更好的方法!

回答:

你应该 不是

抛出一个ArithmeticException。由于错误在于提供的参数中,请抛出一个IllegalArgumentException。如文档所述:

抛出该错误以指示方法已传递了非法或不适当的参数。

这正是这里正在发生的事情。

if (divisor == 0) {

throw new IllegalArgumentException("Argument 'divisor' is 0");

}

以上是 如何在Java中抛出除以零的异常而不实际除以零? 的全部内容, 来源链接: utcz.com/qa/417730.html

回到顶部