summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/SharedDbEnv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Freeze/SharedDbEnv.cpp')
-rw-r--r--cpp/src/Freeze/SharedDbEnv.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/cpp/src/Freeze/SharedDbEnv.cpp b/cpp/src/Freeze/SharedDbEnv.cpp
index 88ca89dbedd..b163fbe3d6d 100644
--- a/cpp/src/Freeze/SharedDbEnv.cpp
+++ b/cpp/src/Freeze/SharedDbEnv.cpp
@@ -565,7 +565,25 @@ Freeze::SharedDbEnv::cleanup()
//
for(SharedDbMap::iterator p = _sharedDbMap.begin(); p != _sharedDbMap.end(); ++p)
{
- delete p->second;
+ try
+ {
+ delete p->second;
+ }
+ catch(const DatabaseException& ex)
+ {
+ Error out(_communicator->getLogger());
+ out << "Freeze map: \"" << p->first << "\" close error: " << ex;
+ }
+ catch(const std::exception& ex)
+ {
+ Error out(_communicator->getLogger());
+ out << "Freeze map: \"" << p->first << "\" close error: " << ex.what();
+ }
+ catch(...)
+ {
+ Error out(_communicator->getLogger());
+ out << "Freeze map: \"" << p->first << "\" close error: unknown exception.";
+ }
}
//