summaryrefslogtreecommitdiff
path: root/src/exceptions.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2010-11-27 01:02:21 +0200
committerPerttu Ahola <celeron55@gmail.com>2010-11-27 01:02:21 +0200
commit4e249fb3fbf75f0359758760d88e22aa5b14533c (patch)
tree323087d05efbd2ace27b316d4f017cf812a31992 /src/exceptions.h
downloadminetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.gz
minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.bz2
minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.zip
Initial files
Diffstat (limited to 'src/exceptions.h')
-rw-r--r--src/exceptions.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/exceptions.h b/src/exceptions.h
new file mode 100644
index 000000000..cbe13f1f3
--- /dev/null
+++ b/src/exceptions.h
@@ -0,0 +1,116 @@
+#ifndef EXCEPTIONS_HEADER
+#define EXCEPTIONS_HEADER
+
+#include <exception>
+
+class BaseException : public std::exception
+{
+public:
+ BaseException(const char *s)
+ {
+ m_s = s;
+ }
+ virtual const char * what() const throw()
+ {
+ return m_s;
+ }
+ const char *m_s;
+};
+
+class AsyncQueuedException : public BaseException
+{
+public:
+ AsyncQueuedException(const char *s):
+ BaseException(s)
+ {}
+};
+
+class NotImplementedException : public BaseException
+{
+public:
+ NotImplementedException(const char *s):
+ BaseException(s)
+ {}
+};
+
+class AlreadyExistsException : public BaseException
+{
+public:
+ AlreadyExistsException(const char *s):
+ BaseException(s)
+ {}
+};
+
+class VersionMismatchException : public BaseException
+{
+public:
+ VersionMismatchException(const char *s):
+ BaseException(s)
+ {}
+};
+
+class FileNotGoodException : public BaseException
+{
+public:
+ FileNotGoodException(const char *s):
+ BaseException(s)
+ {}
+};
+
+class SerializationError : public BaseException
+{
+public:
+ SerializationError(const char *s):
+ BaseException(s)
+ {}
+};
+
+class LoadError : public BaseException
+{
+public:
+ LoadError(const char *s):
+ BaseException(s)
+ {}
+};
+
+class ContainerFullException : public BaseException
+{
+public:
+ ContainerFullException(const char *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):
+ 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
+