0

我正在为学校构建一个项目,我想我想加入一些异常处理(我们在课堂上谈到的一个话题)。

我一直在阅读它们以了解我可以在哪里以及如何使用它们,到目前为止,我认为我可以遵循这一理念,但只是为了检查我是否正确,我想我会发布这个问题。

在对象的构造函数中使用异常处理来防止其数据成员获取非法值是否有用(例如,确保质量不是负数等)?

在修改对象数据成员的函数中怎么样(例如,修改对象长度的函数必须确保长度不低于零)?

我如何捕捉这些错误(我们不想在用户可以控制处理的地方看到catch它们)?main()

或者我应该把以上所有的都放在一边,然后转回旧的cout << you entered a wrong value, continuing with the standard value" << endl; val = 1;

(或者这取决于项目是什么?)

4

1 回答 1

2

它确实在某种程度上取决于项目,但是对于除了玩具程序之外的任何东西,您很少可以选择继续使用默认值。尤其是当您编写库代码时,让 ctor 直接显示错误消息几乎总是不合适的(例如,如果有人试图在 Windowed 程序中使用您的代码,cout通常根本不起作用。通过抛出异常,一些实现它是窗口程序的程序的其他部分可以调用适当的函数(例如,Windows 上的 MessageBox)来显示错误消息。

于 2012-04-09T22:55:28.107 回答