C ++:在构造函数>中进行完整性检查时,我是否需要/可以使用异常处理?

时间:2012-04-09 22:48:21

标签: c++ exception-handling

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

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

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

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

我如何发现这些错误(我们不希望在catch main()中看到cout << you entered a wrong value, continuing with the standard value" << endl; val = 1;这些错误,用户是否可以控制处理?

或者我应该把所有上述内容放在一边,然后切换回好的{{1}}?

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

1 个答案:

答案 0 :(得分:2)

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