Levels of exception-safety

11:41:00 PM 0 Comments A+ a-

There can be levels of exception safety requirements from a class/component/method:

* The basic exception guarantee: The invariants of the component are preserved, and no resources are leaked in the face of an exception.

* The strong exception guarantee: The operation has either completed successfully or thrown an exception, leaving the program state exactly as it was before the operation started. (commit-or-rollback semantics.)

* The no-throw exception guarantee: The operation will not throw an exception.

* The exception-neutrality: In a generic component, we usually have an additional expectation of exception-neutrality, which means that exceptions thrown by a component's type parameters (template parameter) should be propagated, unchanged, to the component's caller.

----
SRC: http://www.boost.org/more/generic_exception_safety.html