簡體   English   中英

異常處理和成員變量

[英]Exception handling and member variables

我有一個簡單的問。

如果我們有一個動態分配成員的類(或使用動態分配的成員),並且我們經常使用該成員,那么處理對該成員失敗的某些操作的最佳方法是什么。
Ofc那里有嘗試漁獲物,但我沒有在談論。

1)我正在談論一個事實,即現在該成員處於其不應處於的狀態(這里我不是在談論資源泄漏,我是在談論這樣一個事實,例如我們想要將100個元素推回std :: vector但我們只添加47)。

現在,例如,當我們調用另一個方法sendToDB時,將向DB發送47個而不是100個項目。 我的解決方案的猜測是在所有公共方法上都具有bool返回值(嘗試全力以赴或全無(aka 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;
   //...


}

我不完全了解您的問題,但是我得到了:

在您的類中,您有一個存儲(類似於vector ),然后您想在其中插入一些內容,操作可能會在其中途失敗。 因此,您想知道插入失敗還是操作完成! 我對嗎? 如果答案是肯定的,那么我認為對此的最佳解決方案是iostream ,該方法fail在發生故障的情況下設置fail狀態,您可以稍后進行檢查或throw exception但是無論如何,設置fail位可以向每個對象發出我的對象的信號處於失敗狀態

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM