C++ Primer 5.6 try语句块和异常处理 知识点+练习题 第五章完结!

练习题

5.23 不做任何异常处理,仅凭程序自身直接产生错误退出,虽然本身可以做处理,但是程序还是会尝试错误操作
cin>>n1>>n2;
if(n2==0)
{
    cout<<"wrong"<<endl;
}
cout<<"the result is"<<n1/n2<<endl;

若n2输入0,程序会输出错误提示,但仍尝试错误操作,程序终止
5.24 用throw语句抛出异常
cin>>n1>>n2;
if(n2==0)
{
    throw runtime_erro("wrong");//初始化,!!!匿名对象初始化
    //cout<<"wrong"<<endl;
}
cout<<"the result is"<<n1/n2<<endl;
抛出异常后立即终止当前函数

 

5.25 
while(cin>>n1>>n2)
{
    try
    {
        if(n2==0)
        {
            throw runtime_erro("wrong");//初始化,!!!匿名对象初始化
            //cout<<"wrong"<<endl;
        }
        cout<<"the result is"<<n1/n2<<endl;
    }
    catch(runtime_erro err)//括号内也有可能是未命名的异常对象
    {
        err.what();//异常类型只定义了一个名为what的成员函数,该函数无任何参数,返回值是指向c风格字符串的const char*.该字符串由程序员初始化,what()函数来显示信息
        char ch;
        if(ch!='y')
            break;//跳出循环
    }
}

 

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值