实验八——异常处理

1.设计一个程序根据输入的三边求三角形面积。

2.要求设置异常处理机制,对不符合三角形条件的提示错误信息,不予计算;对输入非正数的边提示错误,并重新输入。

throw的数据只要满足catch所标注的数据类型就可以了

例如这题里a,b,c三个数据都是double类型的

所以catch(double)接受任意一个数据都能满足要求

#include<iostream>
#include<cmath>
using namespace std;

double triangle(double a,double b,double c){
  double area;
  double s;
  s=0.5*(a+b+c);
  if(a+b<=c||a+c<=b||b+c<=a)throw a;
  area = sqrt(s*(s-a)*(s-b)*(s-c));
  return area;
} 

int main(){
  double a=0;
  double b=0;
  double c=0;
  
  cout<<"请输入三角形三边长度"<<endl;
  cin>>a>>b>>c;
  
  try{
    if(a>0&&b>0&&c>0){
      cout<<"三角形面积"<<triangle(a,b,c)<<endl;
    }else{
      cout<<"三角形边长必须大于0"<<endl; 
    }
  }
  catch(double){
    cout<<"不满足三角形两边之和大于第三边"<<endl;
  }
  return 0;
  
}

 

发表评论

您的电子邮箱地址不会被公开。