I know the rule is to NEVER throw one during a destructor, and I understand why. I would not dare do it. But even the C++ Faq Lite says that this rule is good 99% of the tim
If the destruction is part of a controlled process, then it would be acceptable, but still, you need to get rid of remaining references as much as possible, so throwing might not be good.
Destruction can happen implicitely so often that a throw might break the normal code logic.