c++构造函数发生错误应该如何处理
大家讲道理
大家讲道理 2017-04-17 13:43:21
0
3
328

小白初学c++,c++类设计时,如果构造函数发生错误,应该如何处理比较好?
比如,设计一个矩形类Class Rectangle, 其构造函数为 Rectangle(int l, int w);显然长和宽不能为负数,但如果使用者传递给构造函数负数,应该如何设计类,使其能很好的处理这种错误?
方案:输出错误,终结程序?;构造函数中抛出异常? 各位大神们在实际中应该如何处理这种问题?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(3)
小葫芦

构造函数抛异常并没有什么问题,只有析构函数才不能抛出异常
或者直接将类型定义为unsigned int类型,或者将l,w操作放在新的init函数内

PHPzhong

要么就设成某个默认值,要么就抛异常。

黄舟

可以抛出异常,不过要小心的处理,如果你构造函数中分配了内存或者其他的东西,对象没有构造完毕是不会调用析构函数的,如果你的构造函数很简单,那是没有问题的
还有c++标准说析构函数不要抛出异常。。
或者加一个init函数,当然要用文档说清楚,如果不调用init后果是不可预料的。。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage