Following the discussion on https://github.com/apache/thrift/pull/142 ~TFDTransport seems to be the only throwing destructor from all transports.
Throwing from a destructor is considered not safe under certain conditions and should be avoided.
The c++ standard defines a default noexcept for default destructors as mentioned in: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3166.html
This will cause the current behavior to fail under C++11.
In my opinion, we should catch this mentioned exception in the destructor and log it. This will require to explicitly call the close() method in order to catch the exception.