C++学习之路—— C++异常处理机制

例题:

1.设计一个程序,根据输入的三边求三角形面积。
2.要求设置异常处理机制,对不符合三角形条件提示错误信息,不做计算;
对输入非正数的边提示错误,并重新输入。

代码如下:

class S
{
public:
	double s;
	S(double x, double y, double z)
	{
		a = x;
		b = y;
		c = z;
	}
	void TryS();
private:
	double a, b, c;
};

void S::TryS()
{
	try
	{
		if (a + b < c || a + c < b || b + c < a)
		{
			throw(a);
		}
		else
		{
			double p = (a + b + c) / 2;
			s = sqrt(p*(p - a)*(p - b)*(p - c));
			cout << "该三角形的面积为" << s << endl;
		}
	}
	catch (double s)
	{
		cout << "输入的值不能构成三角形" << endl;
	}
}
int main()
{
	S s1(4.3, 2.2, 3.6);
	s1.TryS();
	S s2(1.0, 1.0, 3.0);
	s2.TryS();

	return 0;
}
发布了22 篇原创文章 · 获赞 26 · 访问量 520

猜你喜欢

转载自blog.csdn.net/weixin_45525272/article/details/104284597