Item29 为“”异常安全”而努力是值得的

“异常安全”的两个条件:

  • 不泄露任何资源:
  • 不允许数据变坏

异常安全函数提供以下三个保证之一:

  1. 基本保证:如果异常被抛出,程序内任何事物仍然保持在有效状态下。
  2. 强烈保证:如果异常被跑出,程序状态不改变。copy and swap策略(拷贝一份,对副本修改,再设置回去)。
  3. 不抛掷保证:承诺绝不跑出异常。

强烈保证,往往能够以copy-and-swap实现出来,但并非对所有的函数都可实现或具备现实意义。

猜你喜欢

转载自blog.csdn.net/u013015629/article/details/107550840
29