#include<iostream>
using namespace std;
#include<math.h>
double triangle(double a,double b,double c)
{
double s = (a + b + c) / 2;
//此时可能有异常,需要处理
if (a + b <=c|| b + c <= a|| a + c <= b)
{
throw a;//本级不进行处理,抛给上一级main()函数处理
//在可能出错的地方抛出一个异常
}
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main()
{
double a, b, c;
cin >> a >> b >> c;
try//将可能出错的代码防止于此
{
while (a>0&&b>0&&c>0)
{
cout<<triangle(a, b, c)<<endl;//这里可能出错
cin >> a >> b >> c;
}
}
catch(double)//参数类型
{
cout << "所输入的a,b,c值构不成一个三角形" << endl;
}
cout << "endl" << endl;
return 0;
}
异常处理:给三角形的三边a,b,c求三角形面积。只有a+b>c,b+c>a,a+c>b时才能构成三角形。设置异常处理,对不符合三角形条件的输出警告,不予计算
于 2023-03-16 15:23:03 首次发布