代码:
#include <iostream>
using namespace std;
double hmean(double a, double b); //函数原型声明
int main()
{
double x, y, z;
while (cin >> x >> y) {
try {
z = hmean(x, y);
}
catch (char* s) {
cout << s;
continue;
}
}
cout << "bye";
return 0;
}
double hmean(double a, double b) {
if (a == -b)
throw "bad arguments";
return 2.0 * a * b / (a + b);
}
分析:
异常机制存在的意义:
对程序运行中发生的异常情况进行响应并处理。
组成部分:
(1)try块
try块中的代码表示:需要注意这里面的代码,可能会出现问题,引发异常。
(2)引发异常throw
这个try快中使用了函数调用,当调用时确实出现了异常,会利用throw语句引发异常。throw语句实际上是跳转,终止函数的执行,将控制权返回,然后寻找与引发异常类型匹配的异常处理程序。
(3)异常处理程序catch
使用catch捕获异常。catch参数为指向char的指针,因此throw传递的字符串传给char*,类型匹配。然后程序跳到catch块中执行程序。