diff options
Diffstat (limited to 'src/exceptions.h')
-rw-r--r-- | src/exceptions.h | 146 |
1 files changed, 44 insertions, 102 deletions
diff --git a/src/exceptions.h b/src/exceptions.h index 085b42417..a558adc5d 100644 --- a/src/exceptions.h +++ b/src/exceptions.h @@ -17,168 +17,110 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef EXCEPTIONS_HEADER -#define EXCEPTIONS_HEADER +#pragma once #include <exception> +#include <string> + class BaseException : public std::exception { public: - BaseException(const char *s) - { - m_s = s; - } + BaseException(const std::string &s) throw(): m_s(s) {} + ~BaseException() throw() = default; + virtual const char * what() const throw() { - return m_s; + return m_s.c_str(); } - const char *m_s; +protected: + std::string m_s; }; -class AsyncQueuedException : public BaseException -{ +class AlreadyExistsException : public BaseException { public: - AsyncQueuedException(const char *s): - BaseException(s) - {} + AlreadyExistsException(const std::string &s): BaseException(s) {} }; -class NotImplementedException : public BaseException -{ +class VersionMismatchException : public BaseException { public: - NotImplementedException(const char *s): - BaseException(s) - {} + VersionMismatchException(const std::string &s): BaseException(s) {} }; -class AlreadyExistsException : public BaseException -{ +class FileNotGoodException : public BaseException { public: - AlreadyExistsException(const char *s): - BaseException(s) - {} + FileNotGoodException(const std::string &s): BaseException(s) {} }; -class VersionMismatchException : public BaseException -{ +class DatabaseException : public BaseException { public: - VersionMismatchException(const char *s): - BaseException(s) - {} + DatabaseException(const std::string &s): BaseException(s) {} }; -class FileNotGoodException : public BaseException -{ +class SerializationError : public BaseException { public: - FileNotGoodException(const char *s): - BaseException(s) - {} + SerializationError(const std::string &s): BaseException(s) {} }; -class SerializationError : public BaseException -{ +class PacketError : public BaseException { public: - SerializationError(const char *s): - BaseException(s) - {} + PacketError(const std::string &s): BaseException(s) {} }; -class LoadError : public BaseException -{ +class SettingNotFoundException : public BaseException { public: - LoadError(const char *s): - BaseException(s) - {} + SettingNotFoundException(const std::string &s): BaseException(s) {} }; -class ContainerFullException : public BaseException -{ +class ItemNotFoundException : public BaseException { public: - ContainerFullException(const char *s): - BaseException(s) - {} + ItemNotFoundException(const std::string &s): BaseException(s) {} }; -class SettingNotFoundException : public BaseException -{ +class ServerError : public BaseException { public: - SettingNotFoundException(const char *s): - BaseException(s) - {} + ServerError(const std::string &s): BaseException(s) {} }; -class InvalidFilenameException : public BaseException -{ +class ClientStateError : public BaseException { public: - InvalidFilenameException(const char *s): - BaseException(s) - {} + ClientStateError(const std::string &s): BaseException(s) {} }; -class ProcessingLimitException : public BaseException -{ +class PrngException : public BaseException { public: - ProcessingLimitException(const char *s): - BaseException(s) - {} + PrngException(const std::string &s): BaseException(s) {} }; -class CommandLineError : public BaseException -{ +class ModError : public BaseException { public: - CommandLineError(const char *s): - BaseException(s) - {} + ModError(const std::string &s): BaseException(s) {} }; -class ItemNotFoundException : public BaseException -{ + +/* + Some "old-style" interrupts: +*/ + +class InvalidNoiseParamsException : public BaseException { public: - ItemNotFoundException(const char *s): - BaseException(s) + InvalidNoiseParamsException(): + BaseException("One or more noise parameters were invalid or require " + "too much memory") {} -}; -// Only used on Windows (SEH) -class FatalSystemException : public BaseException -{ -public: - FatalSystemException(const char *s): + InvalidNoiseParamsException(const std::string &s): BaseException(s) {} }; -/* - Some "old-style" interrupts: -*/ - class InvalidPositionException : public BaseException { public: InvalidPositionException(): BaseException("Somebody tried to get/set something in a nonexistent position.") {} - InvalidPositionException(const char *s): + InvalidPositionException(const std::string &s): BaseException(s) {} }; - -class TargetInexistentException : public std::exception -{ - virtual const char * what() const throw() - { - return "Somebody tried to refer to something that doesn't exist."; - } -}; - -class NullPointerException : public std::exception -{ - virtual const char * what() const throw() - { - return "NullPointerException"; - } -}; - -#endif - |