我正在为学校建立一个项目,我想我想要处理一些异常处理(我们在课堂上谈到的话题)。
我一直在阅读他们,看看我在哪里以及如何使用它们,到目前为止我认为我可以遵循这一理念,但只是为了检查我是否正确我以为我是发表这个问题。
在对象的构造函数中使用异常处理以防止它的数据成员采取非法值(例如确保质量不是负面等)是否有用?
修改对象数据库的函数怎么样(例如修改对象长度的函数必须确保长度不低于零)?
我如何发现这些错误(我们不希望在catch
main()
中看到cout << you entered a wrong value, continuing with the standard value" << endl; val = 1;
这些错误,用户是否可以控制处理?
或者我应该把所有上述内容放在一边,然后切换回好的{{1}}?
(或者这取决于项目是什么?)
答案 0 :(得分:2)
它确实在某种程度上依赖于项目,但除了玩具程序之外,你可以很少选择继续使用默认值。特别是当您编写库代码时,让ctor直接显示错误消息几乎总是不合适的(例如,如果有人试图在Windowed程序中使用您的代码,cout
通常根本不起作用。抛出异常,程序的其他一部分实现它是一个窗口程序可以调用相应的函数(例如,Windows上的MessageBox)来显示错误消息。