条款29:为“异常安全”而努力是值得的

当异常被抛出时,带有异常安全性的函数:

1.不泄露任何资源

2.不允许数据败坏

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

1.基本承诺:如果异常被抛出,程序内的任何事物仍然保持在有效的状态下。没有任何对象或数据结构会因此而败坏,所有对象都处于一种内部前后一致的状态。

2.强烈保证:如果异常被抛出,程序状态不改变.调用这样的函数需有这样的认知:如果函数成功,就是完全成功,如果函数失败,程序会回复到“调用函数之前”的状态。

3.不抛掷保证,承诺绝不抛出异常,因为他们总是能够完成它们原先承诺的功能。

原文地址:https://www.cnblogs.com/crazycodehzp/p/3383542.html