C++及数据结构复习笔记(九)(异常处理和命名空间)

1.12 C++程序设计中的其他要点

1.12.1 异常处理

       程序中常见的错误有2类:语法错误和逻辑错误(运行错误)。

       C++处理异常的机制有:检查(try),抛出(throw)和捕捉(catch)。把需要检查的语句放在try块,throw用来在发生异常时发出信息,catch用于捕捉异常信息并处理。

例 1.12.1给出三角形的三边,求三角形面积。要求设置异常处理,对不符合三角形条件的输出警告信息,不予计算。

#include<iostream>
#include<cmath>
using namespace std;
void main()
{
  double triangle(double,double,double);
  double a,b,c;
  cin>>a>>b>>c;
  try   //在try模块中包含检查函数
  {
while(a>0&&b>0&&c>0)
{
  cout<<triangle(a,b,c)<<endl;
  cin>>a>>b>>c;
}
  }
  catch(double)     //用catch捕捉异常信息并作相应处理
{
cout<<”a=”<<a<<”,b=”<<b<<”,c=”<<c<<”,that is not a triangle!”<<endl;
cout<<”end”<<endl;
  }
}
double triangle(double a,double b,double c)//计算三角形面积的函数
{
  double s=(a+b+c)/2;
  if (a+b<c||b+c<a||c+a<b) throw a;//当不符合三角形条件时抛出异常信息
  return sqrt(s*(s-a)*(s-b)*(s-c));
}

1.12.2 命名空间

       using namespace std;

       这就是使用了命名空间std。命名空间是ANSI C++引入的可以由用户命名的作用域,其用来处理程序中常见的同名冲突。

猜你喜欢

转载自blog.csdn.net/lao_tan/article/details/80976986