Which of the following reasons describe why a destructor cannot throw an exception in C++?

A. The C++ language does not permit it; a throw statement in a destructor will be caught as an error by the compiler.
B. It can invoke the terminate() handler.
C. Since the object is being destroyed, it is illogical to throw an exception then.
D. A destructor may be invoked as a result of stack unwinding while an exception is being handled.
E. A destructor in C++ cannot implement a try...catch block.

Ok,
* A is incorrect - you can throw an exception in an destructor
* B is correct - since if a destructor, called by the language runtime during stack unwinding, terminates
with an exception the whole program is terminated.
* C is correct - not sure why, but that answer makes sense to me.
* D unsure
* E is incorrect.

Can someone please confirm/comment? Thx