我编写了一个模拟器,其中包含一些碰撞检测代码,并且在检测到碰撞时会对每个对象进行很好的数学运算。
如果这两个对象位于完全相同的位置,或者在极少数其他情况下,我会沿其某处获取NaN(不是数字)作为它们的位置,我想知道在哪里。通常,如果我对整数执行这些操作,程序将崩溃,但是由于+和-无穷大是浮点规范的一部分,因此可以使用它。
因此,沿着这条线的某个地方,我取负数的平方根或除以零。
无论如何,我是否可以使我的程序在导致该错误的操作上自动崩溃,以便缩小其范围?
最佳答案
我认为除非您在除法之前测试数字并自己提出例外,否则您不能提出除以零的例外。
浮点数的问题是,标准要求结果必须为NaN(而不是数字)浮点数。我知道所有的JVM和编译器都遵循这方面的标准。