}
return (*this);
}
-
- /// \brief Exception version of arg.
- ///
- /// \param e An exception which the "what()" is extracted an put into the
- /// message.
- Formatter& arg(const std::exception& e) {
- if (logger_) {
- return (arg(e.what()));
- } else {
- return (*this);
- }
- }
-
};
}
EXPECT_EQ("%1 %1", outputs[0].second);
}
-// Test it can accept exceptions (which don't have a default conversion
-// to string by themself)
-TEST_F(FormatterTest, exception) {
- class Ex : public std::exception {
- public:
- virtual const char* what() const throw() {
- return "Exception test";
- }
- };
- Formatter(isc::log::INFO, s("%1"), this).arg(Ex());
- ASSERT_EQ(1, outputs.size());
- EXPECT_EQ(isc::log::INFO, outputs[0].first);
- EXPECT_EQ("Exception test", outputs[0].second);
-}
-
}
* user will get error info, command control can be used to set new
* address. So we just catch the exception without propagating outside
*/
- LOG_ERROR(logger, SRVCOMM_ADDRESS_FAIL).arg(e);
+ LOG_ERROR(logger, SRVCOMM_ADDRESS_FAIL).arg(e.what());
try {
setAddresses(service, addressStore);
}
catch (const exception& e2) {
- LOG_FATAL(logger, SRVCOMM_ADDRESS_UNRECOVERABLE).arg(e2);
+ LOG_FATAL(logger, SRVCOMM_ADDRESS_UNRECOVERABLE).arg(e2.what());
}
//Anyway the new configure has problem, we need to notify configure
//manager the new configure doesn't work