From: Mukund Sivaraman Date: Tue, 18 Jun 2013 10:42:41 +0000 (+0530) Subject: [2947] Update exception hierarchy X-Git-Tag: bind10-1.2.0beta1-release~389^2~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=db2f7c545136ec475f2afda44ff182b195e2ed28;p=thirdparty%2Fkea.git [2947] Update exception hierarchy Put all the library exceptions under DataSourceLibraryError. --- diff --git a/src/lib/datasrc/factory.cc b/src/lib/datasrc/factory.cc index 34ab6d8b74..26b31dd687 100644 --- a/src/lib/datasrc/factory.cc +++ b/src/lib/datasrc/factory.cc @@ -83,8 +83,8 @@ LibraryContainer::LibraryContainer(const std::string& name) { if (ds_lib_ == NULL) { // This may cause the filename to appear twice in the actual // error, but the output of dlerror is implementation-dependent - isc_throw(DataSourceLibraryError, "dlopen failed for " << name << - ": " << dlerror()); + isc_throw(DataSourceLibraryOpenError, + "dlopen failed for " << name << ": " << dlerror()); } } diff --git a/src/lib/datasrc/factory.h b/src/lib/datasrc/factory.h index 4e669ec1ad..b9b6578a82 100644 --- a/src/lib/datasrc/factory.h +++ b/src/lib/datasrc/factory.h @@ -27,7 +27,7 @@ namespace isc { namespace datasrc { -/// \brief Raised if there is an error loading the datasource implementation +/// \brief Raised if there is an error in the datasource implementation /// library class DataSourceLibraryError : public DataSourceError { public: @@ -35,13 +35,22 @@ public: DataSourceError(file, line, what) {} }; +/// \brief Raised if there is an error opening the the datasource +/// implementation library +class DataSourceLibraryOpenError : public DataSourceLibraryError { +public: + DataSourceLibraryOpenError(const char* file, size_t line, + const char* what) : + DataSourceLibraryError(file, line, what) {} +}; + /// \brief Raised if there is an error reading a symbol from the datasource /// implementation library -class DataSourceLibrarySymbolError : public DataSourceError { +class DataSourceLibrarySymbolError : public DataSourceLibraryError { public: DataSourceLibrarySymbolError(const char* file, size_t line, const char* what) : - DataSourceError(file, line, what) {} + DataSourceLibraryError(file, line, what) {} }; typedef DataSourceClient* ds_creator(isc::data::ConstElementPtr config,