首先看段代码:
double
x,y,z; 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{}.