No destructor should ever throw an exception. If it does, there’s not really any way to recover from it anyway, so it doesn’t matter if anything leaks because of it.
Greate quote by [WayBack] User Rob Kennedy answering [WayBack] interface – Avoiding nested try…finally blocks in Delphi – Stack Overflow
It’s a basic development pattern for writing Delphi destructor code.
–jeroen