打印

异常处理问题

[复制链接]
782|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pkat|  楼主 | 2013-1-26 11:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法1
#include<iostream>                                 //包含头文件
#include<stdlib.h>
using namespace std;
double fuc(double x, double y)                        //定义函数
{
if(y==0)
{
throw y;                                    //除数为0,抛出异常
}
return x/y;                                    //否则返回两个数的商
}
void main()
{
double res;
try                                            //定义异常
{
res=fuc(2,3);
cout<<"The result of x/y is : "<<res<<endl;
res=fuc(4,0);                                //出现异常
}
catch(double)                                    //捕获并处理异常
{
cerr<<"error of dividing zero.\n";
}
system("pause");
}


方法2

#include<iostream>                                 //包含头文件
#include<stdlib.h>
using namespace std;
double fuc(double x, double y)                        //定义函数
{
if(y==0)
{
cout<<"error of dividing zero.\n";          //除数为0,抛出异常
return y;
}
return x/y;                                    //否则返回两个数的商
}
void main()
{
double res;
res=fuc(2,3);
cout<<"The result of x/y is : "<<res<<endl;
res=fuc(4,0);                                //出现异常
system("pause");
}


大家谈谈这两个处理有何看法

相关帖子

沙发
秋天落叶| | 2013-1-26 11:59 | 只看该作者
个人认为方法一比较好,源码便于管理和阅读。

使用特权

评论回复
板凳
baidudz| | 2013-1-26 12:04 | 只看该作者
如果所调用的库采用了异常处理机制,我们也必须写异常处理机制的代码
如果所调用的库和函数没有采用异常处理机制,我们也没有必要非写异常处理的代码,视个人喜好
或者决定于整个项目采取的错误处理机制,贵在统一

使用特权

评论回复
地板
火箭球迷| | 2013-1-26 12:29 | 只看该作者
第一种是“出错再说”
第二种是“提前预防”

个人现在偏好第一种。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

2726

帖子

0

粉丝