I basically want to change behaviour within a destructor based on whether the destructor is called as a result of a regular or an exceptional situation.
E.g. commit changes to a database on regular destruction, or inhibit logging during exception unwinding.