Try Catch 3

Catch模块里面的内容如果没有包含return等结束关键字,Catch模块里面的内容执行完成后,会回退到Catch模块外层继续执行:

//下面的代码不会输出 Back in main....   

   cout << "In main." << endl; 
    //定义一个try block,它是用一对花括号{}所括起来的块作用域的代码块
    try 
    { 
    cout << "在 try block 中, 准备抛出一个异常." << endl;
    //这里抛出一个异常(其中异常对象的数据类型是int,值为1)
    //由于在try block中的代码是受到监控保护的,所以抛出异常后,程序的
    //控制流便转到随后的catch block中
    throw 1; 
    cout << "在 try block 中, 由于前面抛出了一个异常,因此这里的代码是不会得以执行到的" << endl;
    } 
    //这里必须相对应地,至少定义一个catch block,同样它也是用花括号括起来的
    catch( int& value ) 
    { 
    cout << "在 catch block 中, 处理异常错误。异常对象value的值为:"<< value << endl;
    getchar();
    return -1;
    } 
    cout << "Back in main. Execution resumes here." << endl;
    getchar();
    return 0;


//下面的代码会输出 Back in main.... 

   cout << "In main." << endl; 
    //定义一个try block,它是用一对花括号{}所括起来的块作用域的代码块
    try 
    { 
    cout << "在 try block 中, 准备抛出一个异常." << endl;
    //这里抛出一个异常(其中异常对象的数据类型是int,值为1)
    //由于在try block中的代码是受到监控保护的,所以抛出异常后,程序的
    //控制流便转到随后的catch block中
    throw 1; 
    cout << "在 try block 中, 由于前面抛出了一个异常,因此这里的代码是不会得以执行到的" << endl;
    } 
    //这里必须相对应地,至少定义一个catch block,同样它也是用花括号括起来的
    catch( int& value ) 
    { 
    cout << "在 catch block 中, 处理异常错误。异常对象value的值为:"<< value << endl;
    } 
    cout << "Back in main. Execution resumes here." << endl;
    getchar();
    return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值