天天看點

Item29 為“”異常安全”而努力是值得的

“異常安全”的兩個條件:

  • 不洩露任何資源:
  • 不允許資料變壞

異常安全函數提供以下三個保證之一:

  1. 基本保證:如果異常被抛出,程式内任何事物仍然保持在有效狀态下。
  2. 強烈保證:如果異常被跑出,程式狀态不改變。copy and swap政策(拷貝一份,對副本修改,再設定回去)。
  3. 不抛擲保證:承諾絕不跑出異常。

強烈保證,往往能夠以copy-and-swap實作出來,但并非對所有的函數都可實作或具備現實意義。

繼續閱讀