我读了以下
我想知道为什么构造函数不能优雅地处理错误?构造函数仍然可以支持try-catch,为什么构造函数不能优雅地处理错误?
最佳答案
如果初始化失败,它们可以抛出异常。
这比使对象保持半事件状态的建议更为“优美”,该建议可以通过稍后调用函数进行适当的初始化。正确使用[1],异常可以保证对象已完全初始化或不存在。
该建议大概来自不赞成使用异常来报告错误情况的人。在这种情况下,C++确实变成了一种非常笨拙的语言,没有表达初始化失败的简便方法。幸运的是,在大多数C++程序员中,异常的使用是惯用的,因此通常无需注意这种废话。
[1]具体来说,结合RAII,可以避免将其“捕获到您的构造函数中”或除错误处理程序本身之外的任何地方。
关于c++ - 为什么构造函数不能优雅地处理错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22411341/