問題タブ [exception-safety]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - Drop がパニックになった場合、どうすればよいですか? とにかく他のリソースを解放できますか?
外部の理由MaybeUninit
でを使用する単純なリソースがあります。unsafe
たぶん、T::drop()
パニックになればRefMut
が漏れて中毒になると思いRefCell
ます。どうすればこれを防ぐことができますか?そうすることは慣用的でしょうか? ドキュメントには次のように記載されています。
a will が巻き戻されるとき
panic!
に呼び出されることを考えると、実装内のいずれかが中止される可能性があります。drop
panic!
drop
しかし、その「可能性が高い」だけでは、このシナリオを予想する必要がある (そして処理できる) かどうかが十分に明確になりません。
c++ - 新しいオペレーターの例外的な安全性
これは、libstdc++ の new 演算子の実装です。
コンストラクターの例外が割り当てられたメモリを解放することを誰が保証しますか?
Upd:コメンテーターに感謝します - 実際には、新しい式の例外安全性を意味していました。