如何在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