练习题
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;//跳出循环
}
}