您是否在每个构造函数中检查数据有效性,或者您只是假设数据是正确的并且在参数有问题的特定函数中抛出异常?
构造函数也是一个函数 - 为什么要区分?
创建对象意味着已完成所有完整性检查.检查构造函数中的参数并在检测到非法值后抛出异常是完全合理的.
其中简化了调试.当程序在构造函数中抛出异常时,您可以观察到堆栈跟踪并经常立即查看原因.如果延迟检查,则必须进行更多调查以检测先前事件导致当前错误的原因.