[17.1] try / catch / throw 通过哪些方法来改善软件质量
使用过多的if语句增加白盒测试难度以及质量降级,使用try catch或更合适
[17.2] 如何处理构造函数的失败?
最简单方式:抛出异常
设置内部状态位,外部使用时先检测状态
[17.3] 如何处理析构函数的失败?
尽量不要从析构函数抛出异常
[17.4] 如果构造函数会抛出异常,我该怎样处理资源?
对象中的每个数据成员应该清理自己。一个对象在初始化或析构被异常中断时,会保证其中已被完整构造的成员子对象(除了union之类)被析构。