gpt4 book ai didi

exception - 构造函数什么时候抛出异常是正确的?

转载 作者:行者123 更新时间:2023-12-02 21:35:14 25 4
gpt4 key购买 nike

构造函数什么时候抛出异常是正确的? (或者就 Objective C 而言:初始化器什么时候返回 nil 是正确的?)

在我看来,如果对象不完整,构造函数应该失败,从而拒绝创建对象。即,构造函数应该与其调用者签订契约(Contract),以提供一个功能性和工作对象,可以在其上有意义地调用方法?这样合理吗?

最佳答案

构造函数的工作是使对象进入可用状态。对此基本上有两种思想流派。

一组人赞成两阶段 build 。构造函数只是将对象带入休眠状态,在该状态下它拒绝执行任何工作。还有一个附加函数可以执行实际的初始化。

我一直不明白这种方法背后的原因。我坚定地支持一阶段构造,即对象在构造后完全初始化并可用。

如果单阶段构造函数未能完全初始化对象,则应抛出异常。如果对象无法初始化,则一定不允许它存在,因此构造函数必须抛出异常。

关于exception - 构造函数什么时候抛出异常是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com