我有一个简单的Q。
如果我们有一个具有动态分配成员(或使用动态分配的成员)的类,并且我们经常使用该成员,那么处理该成员上的某些操作失败的最佳方法是什么。
Ofc 有 try catch 但我不是在谈论那个。
1)我在谈论这样一个事实,即现在成员处于不应该的状态(这里我不是在谈论泄漏资源,我在谈论一个事实,例如我们想将 100 个元素推回 std::vector 但我们只添加 47).
现在,例如,当我们调用另一个方法 sendToDB 时,我们将向 DB 发送 47 个而不是 100 个项目。我对解决的猜测是在所有公共方法上都有 bool 返回值(尝试全有或全无(又名 push_back all 100 或 push 0),如果我们确实设法推动 100,则返回 false,如果我们推动 0,则返回 false。
2)但这仍然存在动态分配成员的问题(例如shared_ptr)。这是否意味着使用它的每个方法都必须执行以下操作:
bool MyClass::sendDataToDB()
{
if (! m_DBConnection ) //m_DBConnection is std::shared_ptr
return false;
//...
}