我希望程序在某个浮点变量达到无穷大时抛出异常,或者是Nan NotFiniteNumberException,它看起来像是一种解决方案,但是存在问题。
这个
try
{
Single x = 5;
x = x / 0;
x = x + 1;
}
catch (NotFiniteNumberException ex)
{
//bla bla bla
}
不会扔任何东西。
我知道
IsNan
和IsInfinity
方法,但这不是我想要的。 最佳答案
那是因为您的部门不会抛出NotFiniteNumberException
。它只会为x
返回无穷大。
从documentation of NotFiniteNumberException:
NotFiniteNumberException可用于不支持浮点运算中的无穷和非数字概念的编程语言。
C#的浮点运算支持无穷大和非数字运算,因此此异常不适用于此处。执行除法后,您需要手动检查x
的值。