首先看段代码:
double
x,y,z;
x = 1 ;
y = 0 ;
try
{
z = x / y;
Console.WriteLine(z);
}
catch ( Exception e)
{
Console.WriteLine(e.Message );
}
Console.ReadLine();
x = 1 ;
y = 0 ;
try
{
z = x / y;
Console.WriteLine(z);
}
catch ( Exception e)
{
Console.WriteLine(e.Message );
}
Console.ReadLine();
你认为会输出什么?“被零除”错误?对,但是对于int类型。
开始我也是这么想。后来看到MSDN是这样定义的:
浮点表达式可以包含下列值集:
-
正零和负零。
-
正无穷和负无穷。
-
非数字值 (NaN)。
-
有限的非零值集。
1.0 / 0.0 = 正无穷
看来写程序不能想当然,必要的判断还是要加的,不能什么都靠try{}catch{}.