~ImpossibleError();
};
+class XBT_PUBLIC InitializationError : public std::logic_error {
+public:
+ explicit InitializationError(const std::string& arg) : std::logic_error(arg) {}
+ ~InitializationError();
+};
+
class XBT_PUBLIC UnimplementedError : public std::logic_error {
public:
explicit UnimplementedError(const std::string& arg) : std::logic_error(arg) {}
}
};
-class XBT_PUBLIC ParseError : public Exception, public std::invalid_argument {
- int line_;
- std::string file_;
- std::string msg_;
-
+/** Exception raised when something is going wrong during the parsing of XML files */
+class ParseError : public Exception {
public:
- ParseError(int line, std::string& file, std::string&& msg)
- : Exception(XBT_THROW_POINT, std::move(msg)), std::invalid_argument(msg), line_(line), file_(file), msg_(msg)
- {
- }
-
- const char* what() const noexcept override
+ ParseError(const std::string& file, int line, const std::string& msg)
+ : Exception(XBT_THROW_POINT, xbt::string_printf("Parse error at %s:%d: %s", file.c_str(), line, msg.c_str()))
{
- return bprintf("Parse error at %s:%d: %s", file_.c_str(), line_, msg_.c_str());
}
};