C++(三十一)异常处理
c 语言中错误的处理,通常采用返回值的方式或是置位全局变量的方式。这就存在
两个问题。
如果返回值正是我们需要的数据,且返回数据同出错数据容错性不高。
全局变量,在多线程中易引发竞争。
而且,当错误发生时,上级函数要出错处理,层层上报,
造成过多的出错处理代码,且传递的效率低下。
C++ 通过异常实现了返回与错误的处理的分离。
c++异常处理
//todo 异常处理
#include <iostream>
#include <cmath>
using namespace std;
// 计算三角形面积的函数
double triangleArea(double x, double y, double z)
{
double area;
double s = (x + y + z) / 2; // 计算半周长
// 检查是否能构成三角形
if (x + y > z && y + z > x && x + z > y)
area = sqrt(s * (s - x) * (s - y) * (s - z)); // 使用海伦公式计算面积
else
throw -1.0; // 抛出异常,表示不能构成三角形
return area;
}
int main()
{
int a, b, c;
float area;