Exception guarantees
From Wikipedia, the free encyclopedia
(Redirected from Abrahams guarantees)
Exception guarantees, also known as the Abrahams guarantees after David Abrahams, who formalized the guidelines,[1][2] are a set of contractual guidelines that class library implementors and clients use when reasoning about exception safety in C++ programs.
The rules apply to class implementations (components) in the presence of exceptions; they are as follows (in decreasing order of safety):
- The no-throw guarantee: that the operation will not throw an exception.
- The strong guarantee: that the operation has either completed successfully or thrown an exception, leaving the program state exactly as it was before the operation started.
- The basic guarantee: that the invariants of the component are preserved, and no resources are leaked. Often referred to as the weak guarantee, because following an exception the system is left in a safe, but unknown, state.
Code that doesn't follow at least one of the above rules is called exception unsafe.
[edit] References
- ^ "Exception-Safety in Generic Components". http://www.boost.org/community/exception_safety.html. Retrieved 2008-08-29.
- ^ Abrahams, D. (2000). "Exception-Safety in Generic Components". Lecture Notes in Computer Science: 69–79. http://www.springerlink.com/content/55993ftk0urcue02/.
| This computer programming-related article is a stub. You can help Wikipedia by expanding it. |