Item 38. Exception Safety Axioms
Writing an exception safe program or library is a little like proving a theorem in Euclidean geometry. Starting with as minimal a set of axioms as possible, we prove simple theorems. We then use these subsidiary theorems to prove successively more complex and useful theorems. Exception safety is similar, and we build our exception safe code from exception safe components. (Although it's interesting to note that simply composing a set of exception safe components or function calls does not guarantee that the result will be exception safe. That would be too easy, wouldn't it?) As with any proof system, however, we must eventually settle on a set of axioms with which to build our exception safe structure. What are these axioms?