X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexcept.h;h=3ae83465496b4bc3d050840f6541e04a941c4f18;hb=refs%2Fheads%2Fwip;hp=e68ec481f4aa869ada66a660c59e06e195b6b34b;hpb=ed78b585cfc4ecb44972e346857e887b183fd7a7;p=libs%2Fdatafile.git diff --git a/source/except.h b/source/except.h index e68ec48..3ae8346 100644 --- a/source/except.h +++ b/source/except.h @@ -2,20 +2,23 @@ #define MSP_DATAFILE_EXCEPT_H_ #include +#include +#include +#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 &); - virtual ~data_error() throw() { } + data_error(const std::string &, unsigned, const data_error &); const std::string &get_source() const { return source; } unsigned get_line() const { return line; } @@ -25,35 +28,52 @@ private: }; -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() { } }; -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() { } }; -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() { } }; -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() { } +}; + + +class MSPDATAFILE_API unknown_keyword: public std::runtime_error +{ +public: + unknown_keyword(const std::string &); +}; + + +class MSPDATAFILE_API invalid_signature: public std::runtime_error +{ +public: + invalid_signature(const std::string &, const std::string &); +}; + + +class MSPDATAFILE_API no_collection: public std::runtime_error +{ +public: + no_collection(const std::type_info &); }; } // namespace DataFile