C++抛出异常技巧讲解


  C++语言与 其余编程语言一样,其中也包括有对于 异样的 解决 。我们在这里将会为大家 详尽 讲解一下有关C++抛出 异样的实现 步骤,及 异样的 利用 模式 。 盼望大家 可以从中 获得些协助,以 普及对此的 了解程度 。

  C++抛出 异样(也称为放弃 异样)即检测是不是产生 异样,在C++中,其采纳throw语句来实现,假如检测到产生 异样,则抛出 异样 。该语句的 格局为:

  throw 抒发式;

  假如在try语句块的程序段中(包括在其中调用的函数)发现了 异样,且放弃了该 异样,则这个 异样就 可以被try语句块后的某个catch语句所 拿获并 解决, 拿获和 解决的条件是被放弃的 异样的类型与catch语句的 异样类型相匹配 。因为C++ 使用数据类型来 划分不同的 异样, 因此在推断 异样时,throw语句中的 抒发式的值就没有实际 意思,而 抒发式的类型就特殊主要 。

   解决除数为0的 异样 。该范例将上述除数为0的 异样 可以用try/catch语句来 拿获 异样,并 使用throw语句来实现C++抛出 异样,从而实现 异样 解决,实现代码如代码清单所示 。

  #include<iostream.h> //包括头文件  #include<stdlib.h> double fuc(double x, double y) //定义函数

  {  if(y==0)

  {  throw y; //除数为0,抛出 异样  }

  return x/y; //不然返回两个数的商  }

  void main()

  {  double res;  try //定义 异样

  {  res=fuc(2,3);  cout<<"The result of x/y is : "<<res<<endl;  res=fuc(4,0); //浮现 异样  }

  catch(double) // 拿获并 解决 异样

  {  cerr<<"error of dividing zero.\n";  exit(1); // 异样退出程序  }

  }

  【运行 后果】在Visual C++中新建一个【C++ Source File】文件,输入上述的代码,编译无误后运行 。

  【范例解析】上述代码中,在主函数main()的第14~19行中 使用了try语句定义 异样,其中包括3条有可能浮现 异样的语句,它们为调用两个数相除的函数 。在代码的第20~24行定义了 异样 解决,即 拿获 异样后执行该段代码中的语句 。此外,在函数fuc()的代码5~8行通过throw语句实现C++抛出 异样 。