6
如何编写可能无法正确实例化对象的构造函数
有时您需要编写可能会失败的构造函数。例如,假设我要实例化带有文件路径的对象,例如 obj = new Object("/home/user/foo_file") 只要路径指向适当的文件,一切都很好。但是,如果字符串不是有效路径,则应该中断。但是如何? 你可以: 抛出异常 返回空对象(如果您的编程语言允许构造函数返回值) 返回一个有效的对象,但带有一个标志,指示其路径设置不正确(ugh) 其他? 我假设各种编程语言的“最佳实践”将以不同的方式实现此目标。例如,我认为ObjC更喜欢(2)。但是(2)不可能在C ++中实现,在C ++中,构造函数必须将void作为返回类型。在这种情况下,我认为使用(1)。 您可以使用您选择的编程语言来说明如何处理此问题并解释原因吗?