[boost] [contract] invariant checking after destructor throw