我有一个简单的问题:异常处理和成员变量
如果我们有一个已动态分配的成员(或使用动态分配成员)的类,我们经常使用该成员是什么来处理一些最好的办法操作失败的成员。
Ofc有尝试赶上,但林没有谈论这一点。
1) 林谈论的事实,现在的成员是在状态时,它不应该是(这里我不是在谈论泄漏资源而言,我谈论的例子,我们要的push_back 100元到std的事实: :矢量,但我们只加了47)。
现在,例如,当我们调用其他方法sendToDB时,我们将向数据库发送47个而不是100个项目。 我对解决问题的猜测是在所有公共方法上都有bool返回值(尝试全部或全部为all)(如果我们设法推100,则返回false,如果推0,则返回false。
2) 但是,这仍然留下了动态分配成员(例如shared_ptr)的问题。 这是否意味着每一个使用它必须这样做方法:
bool MyClass::sendDataToDB()
{
if (! m_DBConnection) //m_DBConnection is std::shared_ptr
return false;
//...
}
停止窃取我的身份。 (\ /)(; ,,;)(\ /) – 2012-11-01 09:42:16
我很难理解这个问题,但会提到基本的,强大的,而不是保证回答你的问题? –
@ R.MartinhoFernandes否,因为AFAIK他们处理异常发生的地方,我在谈论这个:简单的例子m_myStruct = new MyStruct(42);抛出所有好...但在其他一些公共成员函数中,你正在使用m_myStruct(这是我Q的第二部分)。首先是如何“记住”前期发生。 – NoSenseEtAl