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

本人有一个程序调试问题向高手请教:
有一个c++函数(不是VC),里面有很多除法运算,在运行过程中,有可能出现分母为零的情况.现在我需要程序在出现分母为零时给出提示.我试过try-catch(...),但分母为领时,并没有跳出来,请问有何解决办法?希望能举例说明,谢谢!

搜索更多相关主题的帖子: 分母 调试 除法 函数 
2006-05-26 20:13
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
收藏
得分:0 
你把代码发上来,要找问题也快得多.

几年前,丢失了求知欲,游荡在游戏世界中. 而今寻找回了求知欲,希望通过自学充实自己.努力中...
2006-05-26 20:49
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
得分:0 

有一个C++函数(不是VC),里面有很多除法,运行时有可能出现分母为零的情况,我希望分母为零时能给出提示,我试过try-catch(…),但好象不好用,能帮忙替我解决这个问题吗?

例如:

fun(double a,double b,double c,)

{

try

{

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

...

}

catch(…)

{

}

}

2006-05-27 09:22
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

你应该在c=a/b之前
有一句if(!b)throw ..
然后再catch这个throw的东西
为什么非要try catch?
可以直接if(!b)cout<<"ERR!"<<endl;exit(1);或则做其他处理!


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-27 09:26
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
得分:0 
里面有很多除法和其他运算.其实,这是个软件可靠性问题,需要解决可能的出错或溢出,如果发现一大段程序里有错或溢出,可以进一步完善数学模型,从这方面来说,又是个程序调试问题.你可以试一下,为何分母为零造成溢出不进入catch(...)?还有其他办法来解决这个问题吗?
2006-05-27 10:03
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
你没有throw吗?怎么throw的?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-27 10:05
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
得分:0 

我现在机器里没有c语言,单位里有.没有试过throw.请问你是否可以举个完整的例子调试一下,把例子发上来,下周一我试一下,谢谢!

2006-05-27 10:10
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
比如:
try
{
...
if(!b)throw ZERO;
...
}
catch(ZERO)
{
...
//处理
...
}

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-27 10:12
kevin8888
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-26
收藏
得分:0 
if(!b)是何意思?是检测_status87()的标志位吗?
2006-05-27 10:14
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
既然是举例,我的意思是如果b==0就报告错误,把错误信息扔给catch

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-27 10:54
快速回复:程序调试问题
数据加载中...
 
   



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

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