| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 994 人关注过本帖
标题:请教溢出检测
只看楼主 加入收藏
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:8 
请教溢出检测

有一个C++函数(不是VC),里面有很多算法,运行时有可能出现溢出(如分母为零,求绝对值大于1的反三角函数asin等)的情况,我希望溢出时能给出提示,我试过try-catch(…),但好象不好用,谁能帮我解决这个问题?能做个试验吗?谢谢!

例如:

function(double a,double b,double c,)

{

try

{

c=a/b; //b可能为零

...

}

catch(…)

{

}

}

搜索更多相关主题的帖子: 三角函数 Roman 
2006-05-28 10:18
zinking
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:35
帖 子:916
专家分:0
注 册:2004-12-5
收藏
得分:0 
怎么不好用阿,绝对好用,就用try catch

http://kongfuziandlife. http://codeanddesign.
2006-05-28 12:29
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
得分:0 
分母为零时不进入catch(...)
2006-05-28 16:44
cathypu0725
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-26
收藏
得分:0 

确实如楼上所说的,如果变量类型为double时,异常是捕获不到的,只有变量类型为整数,异常可以捕获的.
哪位老大可以详细解释一下为什么? 我也不懂为什么会这样?

2006-05-29 13:54
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 

原来的函数不去throw exception的话你当然catch不到有用的信息了。


http://myajax95./
2006-05-29 14:29
cathypu0725
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-26
收藏
得分:0 

double a,double b,double c;
c=a/b;
那是不是只有除之前自己进行判断b是否等于零,否则就没有其它办法?

2006-05-29 15:15
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
得分:0 

这是软件的可靠性问题,我认为C++已经很成熟了,应该有相应的解决办法,只是我现在不知道.哪位高手如果知道不妨赐教.能把解决的方法发上来吗?谢谢!

2006-05-29 20:22
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 
5楼说的对,你要在可能出现问题的地方throw,然后才能在catch里接收到,不throw是没有效果的。

我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-05-30 10:45
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
得分:0 
整个函数里所有算法都有可能溢出,我需要对这个函数进行保护.
2006-05-30 20:59
快速回复:请教溢出检测
数据加载中...
 
   



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

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