aboutsummaryrefslogtreecommitdiff
path: root/src/exceptions.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/exceptions.h')
-rw-r--r--src/exceptions.h146
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
-