X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexcept.h;h=3ae83465496b4bc3d050840f6541e04a941c4f18;hb=refs%2Fheads%2Fwip;hp=ed9ca2337f98c667a4fa40014f9f8477cdf86314;hpb=193d36c8ce13cf2c5cd055fbd008f3003dda0a3e;p=libs%2Fdatafile.git diff --git a/source/except.h b/source/except.h index ed9ca23..3ae8346 100644 --- a/source/except.h +++ b/source/except.h @@ -2,21 +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; } @@ -26,55 +28,49 @@ 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 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() { } }; -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() { } }; -class no_collection: public std::runtime_error +class MSPDATAFILE_API no_collection: public std::runtime_error { public: no_collection(const std::type_info &);