#define CODE_ERROR_LOCATIONS #include "Errors.hpp" #include #include "Logger.hpp" using namespace nb; class TestError : public ErrorBase { public: using ErrorBase::ErrorBase; enum ErrorCodes : unsigned int { A, B, C, D }; static const std::string type; static const ErrorCodeMap ErrorMessages; }; const std::string TestError::type="TestError"; const ErrorCodeMap TestError::ErrorMessages{ {TestError::ErrorCodes::A, "Hey!"}, {TestError::ErrorCodes::B, "How"}, {TestError::ErrorCodes::C, "You"}, {TestError::ErrorCodes::D, "Doin"} }; int main() { try { try { try { try { THROW(TestError, TestError::ErrorCodes::D); } catch (const std::exception& e){ THROW(TestError, TestError::ErrorCodes::C, e); } } catch(const std::exception& e) { THROW(TestError, TestError::ErrorCodes::B, e); } } catch(const std::exception& e) { THROW(TestError, TestError::ErrorCodes::A, e); } } catch(const std::exception& e) { // THROW(Error, Error::ErrorCodes::UNDEFINED, e); Logger log(std::cout); std::cout << "Logger is starting: " << log.run() << std::endl; std::cout << "Logger is running: " << log.isRunning() << std::endl; log.error(e); log.stop(); std::cout << "Logger is running: " << log.isRunning() << std::endl; } return 0; }