C++异常处理try-catch
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double triangle(double, double, double);
double a, b, c;
cin >> a >> b >> c;
try
{
while (a>0&&b>0&c>0)
{
cout << triangle(a, b, c);
cin >> a >> b >> c;
}
}
catch(double)
{
cout << "a" << a << "b" << b << "c" << c;
}
cout <<endl<< "end" << endl;
return 0;
}
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 s;
}
特点:
- 执行了throw语句后,流程立即离开本函数
- catch块是try-catch结构中的一部分,必须紧跟try块后面
- 可以只有try块而没有catch块
- try可以对应多个catch块
- try可以对应多个catch块
- catch(…)可以接受所有类型的异常信息
- 如果catch块包含throw,“我不处理这个异常,请上级处理”