私は単純なQを持っています。
動的に割り当てられたメンバー(または動的割り当てを使用したメンバー)を持つクラスがあり、そのメンバーを頻繁に使用する場合、そのメンバーで失敗した操作を処理する最良の方法は何ですか。
トライキャッチがありますが、それについては話していません。
1)私は、メンバーが本来あるべきではない状態にあるという事実について話している(ここでは、リソースのリークについて話しているのではなく、たとえば、std::vector に 100 個の要素を push_back したいという事実について話しているが、私たちは追加 47)。
たとえば、他のメソッド sendToDB を呼び出すと、100 個ではなく 47 個のアイテムが DB に送信されます。解決するための私の推測は、すべてのパブリック メソッドで bool の戻り値を取得することです (すべてまたは何もしない (別名 push_back すべて 100 または 0 をプッシュする) ことを試みます)。100 をプッシュできた場合は false、0 をプッシュした場合は false を返します
2) しかし、これでも動的に割り当てられたメンバー (shared_ptr など) の問題が残ります。それは、それを使用するすべてのメソッドが次のようなことをしなければならないことを意味しますか?
bool MyClass::sendDataToDB()
{
if (! m_DBConnection ) //m_DBConnection is std::shared_ptr
return false;
//...
}