X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fexceptions.h;h=4f18f70d97c0ec38db9da8e6ab5bd14204393f44;hb=8f49358153637bb87f492e558a13cf9f23046e64;hp=95b9eea97ee6ba5e70bf2737047e8cbef7f6ae15;hpb=385dd9917fd4ced23a704f0566779d58f5a6b727;p=dragonfireclient.git diff --git a/src/exceptions.h b/src/exceptions.h index 95b9eea97..4f18f70d9 100644 --- a/src/exceptions.h +++ b/src/exceptions.h @@ -1,18 +1,18 @@ /* -Minetest-c55 -Copyright (C) 2010 celeron55, Perttu Ahola +Minetest +Copyright (C) 2013 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Lesser General Public License for more details. -You should have received a copy of the GNU General Public License along +You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ @@ -21,128 +21,139 @@ with this program; if not, write to the Free Software Foundation, Inc., #define EXCEPTIONS_HEADER #include +#include + class BaseException : public std::exception { public: - BaseException(const char *s) + BaseException(const std::string &s) throw() { m_s = s; } + ~BaseException() throw() {} 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 AsyncQueuedException : public BaseException { public: - AsyncQueuedException(const char *s): - BaseException(s) - {} + AsyncQueuedException(const std::string &s): BaseException(s) {} }; -class NotImplementedException : public BaseException -{ +class NotImplementedException : public BaseException { public: - NotImplementedException(const char *s): - BaseException(s) - {} + NotImplementedException(const std::string &s): BaseException(s) {} }; -class AlreadyExistsException : public BaseException -{ +class AlreadyExistsException : public BaseException { public: - AlreadyExistsException(const char *s): - BaseException(s) - {} + AlreadyExistsException(const std::string &s): BaseException(s) {} }; -class VersionMismatchException : public BaseException -{ +class VersionMismatchException : public BaseException { public: - VersionMismatchException(const char *s): - BaseException(s) - {} + VersionMismatchException(const std::string &s): BaseException(s) {} }; -class FileNotGoodException : public BaseException -{ +class FileNotGoodException : public BaseException { public: - FileNotGoodException(const char *s): - BaseException(s) - {} + FileNotGoodException(const std::string &s): BaseException(s) {} }; -class SerializationError : public BaseException -{ +class SerializationError : public BaseException { public: - SerializationError(const char *s): - BaseException(s) - {} + SerializationError(const std::string &s): BaseException(s) {} }; -class LoadError : public BaseException -{ +class PacketError : public BaseException { public: - LoadError(const char *s): - BaseException(s) - {} + PacketError(const std::string &s): BaseException(s) {} }; -class ContainerFullException : public BaseException -{ +class LoadError : public BaseException { public: - ContainerFullException(const char *s): - BaseException(s) - {} + LoadError(const std::string &s): BaseException(s) {} }; -class SettingNotFoundException : public BaseException -{ +class ContainerFullException : public BaseException { public: - SettingNotFoundException(const char *s): - BaseException(s) - {} + ContainerFullException(const std::string &s): BaseException(s) {} }; -class InvalidFilenameException : public BaseException -{ +class SettingNotFoundException : public BaseException { public: - InvalidFilenameException(const char *s): - BaseException(s) - {} + SettingNotFoundException(const std::string &s): BaseException(s) {} }; -class ProcessingLimitException : public BaseException -{ +class InvalidFilenameException : public BaseException { public: - ProcessingLimitException(const char *s): - BaseException(s) - {} + InvalidFilenameException(const std::string &s): BaseException(s) {} }; -class CommandLineError : public BaseException -{ +class ProcessingLimitException : public BaseException { public: - CommandLineError(const char *s): - BaseException(s) - {} + ProcessingLimitException(const std::string &s): BaseException(s) {} +}; + +class CommandLineError : public BaseException { +public: + CommandLineError(const std::string &s): BaseException(s) {} }; +class ItemNotFoundException : public BaseException { +public: + ItemNotFoundException(const std::string &s): BaseException(s) {} +}; + +class ServerError : public BaseException { +public: + ServerError(const std::string &s): BaseException(s) {} +}; + +class ClientStateError : public BaseException { +public: + ClientStateError(std::string s): BaseException(s) {} +}; + +class PrngException : public BaseException { +public: + PrngException(std::string s): BaseException(s) {} +}; + +class ModError : public BaseException { +public: + ModError(const std::string &s): BaseException(s) {} +}; + + /* Some "old-style" interrupts: */ +class InvalidNoiseParamsException : public BaseException { +public: + InvalidNoiseParamsException(): + BaseException("One or more noise parameters were invalid or require " + "too much memory") + {} + + InvalidNoiseParamsException(const std::string &s): + BaseException(s) + {} +}; + 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) {} };