求三角形面积:
cin>>a>>b>>c;
getTriangleArea(a,b,c); // 如果输入的三边不满足条件就存在问题,如1 1 3
可以进行异常处理:
void inputData(double& a, double& b,double& c)
{
cin>>a>>b>>c;
if(a +b <= c || a + c <= b || c + b <= a)
{
throw 3;
}
if(a <0 || b < 0|| c <0)
{
throw 3.4;
}
}
try
{
inputData(a,b,c); 如果抛出异常,则下面的不执行,跳到catch
getArea(a,b,c);
break; // 没有错误
}
catch(int)
{
cout<<"两边之和要大于第三边!"<<endl;
}
catch(double)
{
cout<<"边长要大于0!"<<endl;
}
try
{
// 被检测的语句
}
catch(类型[变量]) { // 异常处理 } // catch只检查类型不检查值
catch(类型[变量]) { // 异常处理 }
...
catch(...)
{
// 捕获所有的异常
}
异常组织形式:
1. 通过枚举
2. 通过异常层次关系组织
异常处理:
检测与处理相分离!