搜索

首页  >  问答  >  正文

c++构造函数发生错误应该如何处理

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

大家讲道理大家讲道理2774 天前323

全部回复(3)我来回复

  • 高洛峰

    高洛峰2017-04-17 13:45:21

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

    回复
    0
  • PHPz

    PHPz2017-04-17 13:45:21

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

    回复
    0
  • 黄舟

    黄舟2017-04-17 13:45:21

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

    回复
    0
  • 取消回复