diff --git a/src/config.cc b/src/config.cc index 9456345c2ef1444bfabb8865f0060fbc53e03a10..4ac5ab38b24235f5ecd2260ac033445e7724bdcf 100644 --- a/src/config.cc +++ b/src/config.cc @@ -2,19 +2,18 @@ #include <fstream> +#include "exception.h" #include "log.h" config::config(std::string filename) { bool valid = true; - - std::ifstream in(filename.c_str(), std::ios_base::in); + std::ifstream in(filename, std::ios_base::in); if (!in.is_open()) { - throw std::invalid_argument("Configuration file could not be opened. Does it exist?"); + THROW(FileException, "Configuration file could not be opened. Does it exist?"); } - std::string line; - while (!std::getline(in, line).eof()) { + for (std::string line; std::getline(in, line);) { // Perform left trim line.erase(line.begin(), std::find_if(line.begin(), line.end(), [](int ch) { return !std::isspace(ch); })); @@ -52,9 +51,10 @@ config::config(std::string filename) { } if (!valid) { - throw std::invalid_argument("Configuration error: Keys with no value detected!"); + THROW(ParseException, "Configuration error: Keys with no value detected!"); } } + void config::print() const { for (std::map<std::string, std::string>::const_iterator it = vmap.begin(); it != vmap.end(); it++) {