| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 830 人关注过本帖
标题:try-catch-finally问题
只看楼主 加入收藏
frankdan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-1-9
收藏
 问题点数:0 回复次数:3 
try-catch-finally问题
本想用下面代码来实验一下try-catch-finally问题,结果当(x*x-y*y)<0时,并没有象预料中那样执行catch{}
跪求解答
static void Main()
{
double x,y;
double z=0;
x = double.Parse(Console.ReadLine());
y = double.Parse(Console.ReadLine());
try
{
z = Math.Sqrt(x*x-y*y);
Console.Write("~~~try");
}
catch
{
z = Math.Sqrt(y*y-x*x);
Console.Write("~~~catch");
}
finally
{
z = z + x;
Console.Write("~~~finally");
}
Console.WriteLine("z = {0}",z);
Console.Read();
}
搜索更多相关主题的帖子: double Console catch Math quot 
2006-01-09 16:57
风霜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:7
帖 子:242
专家分:0
注 册:2005-3-4
收藏
得分:0 

Math.Sqrt();
函数若传入负数,返回NaN
并不产生异常
所以不会进入catch中


昔日犹存, 昔日枉存. 故人尚在, 故人何在?
2006-01-09 20:14
frankdan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-1-9
收藏
得分:0 
谢谢风霜,那如何修改可以达到预期的目的?
2006-01-10 10:17
风霜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:7
帖 子:242
专家分:0
注 册:2005-3-4
收藏
得分:0 
可以先用一个double型数值得到x*x-y*y
double z;
double sqrt=x*x-y*y;
if(sqrt>0)
{
z = Math.Sqrt(sqrt);
}
else
{
sqrt=-sqrt;
z = Math.Sqrt(sqrt);
}
(我本以为你的程序只是来用一下try catch,不好意思没及时回)

昔日犹存, 昔日枉存. 故人尚在, 故人何在?
2006-01-10 10:56
快速回复:try-catch-finally问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016265 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved