#ifndef LM_LM_EXCEPTION_H #define LM_LM_EXCEPTION_H // Named to avoid conflict with util/exception.hh. #include "../util/exception.hh" #include "../util/string_piece.hh" #include #include namespace lm { typedef enum {THROW_UP, COMPLAIN, SILENT} WarningAction; class ConfigException : public util::Exception { public: ConfigException() throw(); ~ConfigException() throw(); }; class LoadException : public util::Exception { public: virtual ~LoadException() throw(); protected: LoadException() throw(); }; class FormatLoadException : public LoadException { public: FormatLoadException() throw(); ~FormatLoadException() throw(); }; class VocabLoadException : public LoadException { public: virtual ~VocabLoadException() throw(); VocabLoadException() throw(); }; class SpecialWordMissingException : public VocabLoadException { public: explicit SpecialWordMissingException() throw(); ~SpecialWordMissingException() throw(); }; } // namespace lm #endif // LM_LM_EXCEPTION