#include <stdexcept>
#include <string>
#include <typeinfo>
+#include "mspdatafile_api.h"
namespace Msp {
namespace DataFile {
-class data_error: public std::runtime_error
+class MSPDATAFILE_API data_error: public std::runtime_error
{
private:
std::string source;
- unsigned line;
+ unsigned line = 0;
public:
data_error(const std::string &, unsigned, const std::string &);
data_error(const std::string &, unsigned, const std::exception &);
data_error(const std::string &, unsigned, const data_error &);
- virtual ~data_error() throw() { }
+ ~data_error() throw() override = default;
const std::string &get_source() const { return source; }
unsigned get_line() const { return line; }
};
-class parse_error: public std::runtime_error
+class MSPDATAFILE_API parse_error: public std::runtime_error
{
public:
parse_error(const std::string &);
- virtual ~parse_error() throw() { }
+ ~parse_error() throw() override = default;
};
-class syntax_error: public std::runtime_error
+class MSPDATAFILE_API syntax_error: public std::runtime_error
{
public:
syntax_error(const std::string &t);
- virtual ~syntax_error() throw() { }
+ ~syntax_error() throw() override = default;
};
-class bad_definition: public std::runtime_error
+class MSPDATAFILE_API bad_definition: public std::runtime_error
{
public:
bad_definition(const std::string &w);
- virtual ~bad_definition() throw() { }
+ ~bad_definition() throw() override = default;
};
-class nesting_error: public std::logic_error
+class MSPDATAFILE_API nesting_error: public std::logic_error
{
public:
nesting_error(const std::string &);
- virtual ~nesting_error() throw() { }
+ ~nesting_error() throw() override = default;
};
-class unknown_keyword: public std::runtime_error
+class MSPDATAFILE_API unknown_keyword: public std::runtime_error
{
public:
unknown_keyword(const std::string &);
- virtual ~unknown_keyword() throw() { }
+ ~unknown_keyword() throw() override = default;
};
-class invalid_signature: public std::runtime_error
+class MSPDATAFILE_API invalid_signature: public std::runtime_error
{
public:
invalid_signature(const std::string &, const std::string &);
- virtual ~invalid_signature() throw() { }
+ ~invalid_signature() throw() override = default;
};
-class no_collection: public std::runtime_error
+class MSPDATAFILE_API no_collection: public std::runtime_error
{
public:
no_collection(const std::type_info &);