![](/img/trans.png)
[英]Can a unique_ptr<>() initialization fail?
從std :: unique_ptr <>()的文檔中,我不清楚初始化指針時可能發生的情況。 當分配一個std::shared_ptr<>() ,它分配一個內存緩沖區來處理引用計數器。 所以我可能會得到一個std::bad_alloc異常。 初始化唯一指針時 ...
[英]Can a unique_ptr<>() initialization fail?
從std :: unique_ptr <>()的文檔中,我不清楚初始化指針時可能發生的情況。 當分配一個std::shared_ptr<>() ,它分配一個內存緩沖區來處理引用計數器。 所以我可能會得到一個std::bad_alloc異常。 初始化唯一指針時 ...
[英]Do C standard library functions which are included in C++ throw exception?
在下面的代碼中,作者指出, new operator調用可能會導致異常,因此該實現不是異常安全的,因為第一行中的對象狀態已更改。 在閱讀時,我想知道C庫函數是否會在C ++中引發異常? 我知道C中沒有例外,但是由於我們使用的是C ++編譯器,因此可能會有例外。 因此,我們可以將c ...
[英]Scope Guard Statement in C#
資源獲取初始化(RAII)習慣用法和try-finally語句構成了編寫異常安全編程的傳統方法的支柱。 我的問題是:C#上是否有類似Scope Guard聲明的內容 ? ...
[英]Is it OK to have a throwing swap member-implementation?
編寫類(使用復制和交換習語)時的一般准則是提供非拋出交換成員函數。 ( Effective C ++,第3版,第25項和其他資源) 但是,如果我不能提供nothrow保證,因為我的類使用的第三方類成員不提供交換操作,該怎么辦? CString swap無法進行無拋出,因此交換可能 ...
[英]How do you know all the exceptions a method can throw
有沒有辦法獲得有關 Java 標准類的異常安全方面的一些詳細信息? 主要使用 C++ 和 C#,我對 Java 異常規范感到困惑,所以我需要了解處理異常的正確方法。 更具體地說,讓我們考慮ServerSocket 。 一旦構建了 object,它就會開始偵聽傳入連接。 然后,您應該使用accept( ...
[英]Exception Safety example guarantee correct?
我討論了異常安全保證人,並設計了一個我認為可以提供有力保證的示例: 只是一個簡單的(C ++ 0x)-示例如何使用它: 假設LT不會改變要素,但是可能會拋出。 假設代碼提供了正確的答案嗎 強異常安全保證 對LT是中性的嗎? ...
[英]Is Try/Finally actually exception-safe?
假設您有一段代碼,例如: 我在這里沒有指任何特定的語言,但我想 Java、C# 和 C++ 將是很好的例子(假設你使用的是__try / __finally ++) 這是異常安全的嗎? 就個人而言,我不認為這是異常安全的,因為如果在進入try塊之前出現異常怎么辦? 然后你的資源就會泄露。 不過,我 ...
[英]safe std::tr1::shared_ptr usage
這種方法不安全嗎? 還是createFoo返回shared_ptr<Foo>對象更可取? ...
[英]Exception Safety- When, How, Why?
我只是一個初出茅廬的程序員,至少嘗試編程而不是最好的情況。 我一直在閱讀Herb Sutter的“Exceptional C ++”,並且到目前為止已經完成了三次異常安全章節。 然而,除了他提出的一個例子(一個堆棧),我不確定我應該在什么時候努力爭取異常安全與速度以及何時這樣做是非常愚蠢的。 ...
[英]Is it safe to push_back 'dynamically allocated object' to vector?
每當我需要將動態分配的對象添加到向量中時,我一直在做以下方式: 它只是工作,許多其他人似乎做同樣的事情。 今天,我學會了vector :: push_back可以拋出異常。 這意味着上面的代碼不是異常安全的。 :-(所以我提出了一個解決方案: 但問題是新的方式冗長乏味, ...
[英]Why does `myvector.push_back(autoPtr.release())` provide the strong exception safety guarantee?
編輯:我應該提到,我在看Boost的ptr_sequence_adapter的文檔 ,它聲稱它們的template< class U > void push_back( ::std::auto_ptr<U> x );適配器template< class U > ...
[英]Can a stack have an exception safe method for returning and removing the top element with move semantics?
在回答有關std::stack::pop() 我聲稱 pop不返回值的原因是出於異常安全原因(如果復制構造函數拋出會發生什么)。 @Konrad評論說現在有了移動語義,這已經不再適用了。 這是真的? AFAIK,移動構造函數可以 throw ,但也許沒有noexcept它仍然可以實 ...
[英]Is this a fine std::auto_ptr<> use case?
請假設我有一個接受指針作為參數的函數。 此函數可以拋出異常,因為它使用std::vector<>::push_back()來管理此指針的生命周期。 如果我這樣聲明: 並稱之為: 如果它拋出異常將指針推入std::vector<> ,我實際上有內存泄漏, ...
[英]Exception safety/handling with .Net HtmlTextWriter?
我正在使用.Net HtmlTextWriter生成HTML。 在此示例中,如果在myObject.GenerateHtml()期間引發了錯誤異常,我將生成一個不錯的錯誤html,但它之前將帶有一個從未關閉的開放span標記。 我可以這樣重構 現在我的跨度還沒有打開,直到我 ...
[英]How do I describe a method that has no side effects if an exception is thrown during execution?
我只是不記得用於此及其他相關屬性的術語。 編輯-也許這樣的概念不存在,但我記得在“有效C ++”(或“更有效C ++”)中讀過一些東西,他主張使用交換來在函數中最后提交更改,因為保證了向量交換函數不會引發異常。 ...