Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46585
  • 博文数量: 43
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 495
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-19 14:06
文章分类

全部博文(43)

文章存档

2011年(1)

2009年(42)

我的朋友
最近访客

分类: C/C++

2009-07-31 21:44:54

c++的异常机制
异常:一般是指打开文件失败,或者申请内存失败等一切不可预料的错误。

#include

double Div(double, double);

int main(int argc, char * argv[])
{
        try //定义异常
        {
                std::cout << "7.3/2.0 = " << Div(7.3, 2.0) << std::endl;
                std::cout << "7.3/2.0 = " << Div(7.3, 0.0) << std::endl;
                std::cout << "7.3/2.0 = " << Div(7.3, 1.0) << std::endl;
        }
        catch(double) //捕获异常
        {
                std::cout << "eccept of deviding zero.\n";
        }
        std::cout << "That is ok.\n";
}

double Div(double a, double b)
{
        if (b == 0.0)
                throw b;//抛出异常
        return a/b;
}

wg@wg-laptop:/dos/test$ g++ 49.cc
wg@wg-laptop:/dos/test$ ./a.out
7.3/2.0 = 3.65
eccept of deviding zero.
That is ok.
 
  执行try模块里面的语句,到std::cout << "7.3/2.0 = " << Div(7.3, 0.0) << std::endl;这句时,因为b=0,后面std::cout << "7.3/2.0 = " << Div(7.3, 1.0) << std::endl;这句将不再执行,这个时候将抛出异常,而这个异常会被catch捕获。
阅读(216) | 评论(0) | 转发(0) |
0

上一篇:软件测试

下一篇:this指针

给主人留下些什么吧!~~