我在一些C ++ Android NDK代码中有一个构造函数,用于更大的Android项目。这个构造函数缺少一些参数的简单边界检查,我已经添加了。如果它们无效,则对象初始化没有意义。不幸的是,似乎例外not supported in the NDK 。返回NULL
也未被编译器接受(我在启用-Wreturn-type
时出现错误),无论如何它似乎都是错误的。
This answer提供了其他信号失败方式的概述,如果例外不是一个选项,但因为它们都非常hacky。由于android NDK没有提供异常,我认为它可能提供一些其他方法。是这样的,还是我不得不求助于hacky?
答案 0 :(得分:3)
答案 1 :(得分:0)
由于如果无法打开文件,对象完全无效,一个选项可能是使用Factory Method Pattern和类似于NullObject模式的内容。
(但是,我建议不要将其称为“NullObject”,而是使用“InvalidObject”或“IOErrorObject”。)
通过这种方式,无论构造函数调用可能失败,您始终都会返回一个有效对象。另一个好处是,这种技术还可以简化您的调用代码,因为它有助于避免空值检查。