diff options
author | Jose <jose@zeroc.com> | 2009-02-12 20:00:58 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2009-02-12 20:00:58 +0100 |
commit | 4352f504bff7ab7141322eb814f40928564f51fb (patch) | |
tree | cc942bafaf93fae3c656a43417b239826756d642 /cpp/src/Freeze/SharedDbEnv.cpp | |
parent | Bug 3220 - fix project names for VS2005/VS2008 conversion (diff) | |
download | ice-4352f504bff7ab7141322eb814f40928564f51fb.tar.bz2 ice-4352f504bff7ab7141322eb814f40928564f51fb.tar.xz ice-4352f504bff7ab7141322eb814f40928564f51fb.zip |
Fixed 3728 - Freeze::MapDb::~MapDb can throw
Diffstat (limited to 'cpp/src/Freeze/SharedDbEnv.cpp')
-rw-r--r-- | cpp/src/Freeze/SharedDbEnv.cpp | 20 |
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."; + } } // |