The fact that the stack unwinding occurs before the code in the catch block is run is a large part of what makes a throwing destructor so fatal.