【发布时间】:2011-01-16 03:04:54
【问题描述】:
我最近编写的程序中的一些数学函数返回了不可接受的值,例如 NaN(可能是由于未检查某些函数的输入参数)。问题是很难追踪哪些函数传递了错误的值。这会导致错误在整个代码中传播,并使程序在几分钟或几小时后崩溃(如果有的话)。
我想知道是否有办法在任何操作产生 NaN 值时捕获这些错误操作(如果我记得的话,这与某些 C/C++ 编译器抛出的“DivisionByZero 异常”几乎相同)。
提前致谢。
P.D:如果需要,请随时重新标记我的问题。
【问题讨论】:
-
在我看来,这是一个应该考虑将测试纳入开发的案例。如果您的数学函数不是太多,您可能需要正确定义前置条件和后置条件并为它们编写测试以避免它们首先返回 NaN。
-
在这种情况下访问索引 = (long)NaN 值的数组,但它可能是其他任何值。
-
@Frank 是的,我应该这样做,但我没有这样做,这就是我在这里问的原因:)