Math.sqrt()这个函数里面的参数如果是负数的话,C#是不抛异常的,会返回一个NaN。具体的你可以查一下这个地址http://msdn.microsoft.com/zh-cn/library/8d1kb886(v=VS.85).aspx里面对sqrt这个函数写的比较详细
catch { t=Math.Sqrt(y*y-x*x); //在此处加个断点,看看执行了没有?}