Fix handling of exceptions in destructors. Destructors should catch all exceptions and don't throw themselves.