summaryrefslogtreecommitdiff
path: root/src/cppunit/DynamicLibraryManagerException.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cppunit/DynamicLibraryManagerException.cpp')
-rw-r--r--src/cppunit/DynamicLibraryManagerException.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/cppunit/DynamicLibraryManagerException.cpp b/src/cppunit/DynamicLibraryManagerException.cpp
index 44a7e62..a5f133b 100644
--- a/src/cppunit/DynamicLibraryManagerException.cpp
+++ b/src/cppunit/DynamicLibraryManagerException.cpp
@@ -7,27 +7,32 @@ namespace CppUnit
DynamicLibraryManagerException::DynamicLibraryManagerException(
- const std::string &libraryName )
- : m_cause( loadingFailed )
- , std::runtime_error( "Failed to load dynamic library: " + libraryName )
+ const std::string &libraryName,
+ const std::string &errorDetail,
+ Cause cause )
+ : m_cause( cause )
+ , std::runtime_error( "" )
{
+ if ( cause == loadingFailed )
+ m_message = "Failed to load dynamic library: " + libraryName + "\n" +
+ errorDetail;
+ else
+ m_message = "Symbol [" + errorDetail + "] not found in dynamic libary:" +
+ libraryName;
}
-DynamicLibraryManagerException::DynamicLibraryManagerException(
- const std::string &libraryName,
- const std::string &symbol )
- : m_cause( symbolNotFound )
- , std::runtime_error( "Symbol [" + symbol + "] not found in dynamic libary:" +
- libraryName )
+DynamicLibraryManagerException::Cause
+DynamicLibraryManagerException::getCause() const
{
+ return m_cause;
}
-DynamicLibraryManagerException::Cause
-DynamicLibraryManagerException::getCause() const
+const char *
+DynamicLibraryManagerException::what() const throw()
{
- return m_cause;
+ return m_message.c_str();
}