summaryrefslogtreecommitdiff
path: root/src/exceptions.h
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2013-12-18 16:35:55 -0500
committerShadowNinja <shadowninja@minetest.net>2013-12-18 16:35:55 -0500
commit49cec3f78240ed6310a9b5dd05ce09a79ed5a12e (patch)
tree38e8199e49906357939e74b6ed0b00f6f54de976 /src/exceptions.h
parent38d112033b3ba0ea0360fced334a279576aafc5d (diff)
downloadminetest-49cec3f78240ed6310a9b5dd05ce09a79ed5a12e.tar.gz
minetest-49cec3f78240ed6310a9b5dd05ce09a79ed5a12e.tar.bz2
minetest-49cec3f78240ed6310a9b5dd05ce09a79ed5a12e.zip
Handle LuaErrors in Lua -> C++ calls on LuaJIT
Diffstat (limited to 'src/exceptions.h')
-rw-r--r--src/exceptions.h115
1 files changed, 41 insertions, 74 deletions
diff --git a/src/exceptions.h b/src/exceptions.h
index 085b42417..6fb97f3ed 100644
--- a/src/exceptions.h
+++ b/src/exceptions.h
@@ -21,132 +21,99 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define EXCEPTIONS_HEADER
#include <exception>
+#include <string>
+
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(std::string s): BaseException(s) {}
};
-class NotImplementedException : public BaseException
-{
+class NotImplementedException : public BaseException {
public:
- NotImplementedException(const char *s):
- BaseException(s)
- {}
+ NotImplementedException(std::string s): BaseException(s) {}
};
-class AlreadyExistsException : public BaseException
-{
+class AlreadyExistsException : public BaseException {
public:
- AlreadyExistsException(const char *s):
- BaseException(s)
- {}
+ AlreadyExistsException(std::string s): BaseException(s) {}
};
-class VersionMismatchException : public BaseException
-{
+class VersionMismatchException : public BaseException {
public:
- VersionMismatchException(const char *s):
- BaseException(s)
- {}
+ VersionMismatchException(std::string s): BaseException(s) {}
};
-class FileNotGoodException : public BaseException
-{
+class FileNotGoodException : public BaseException {
public:
- FileNotGoodException(const char *s):
- BaseException(s)
- {}
+ FileNotGoodException(std::string s): BaseException(s) {}
};
-class SerializationError : public BaseException
-{
+class SerializationError : public BaseException {
public:
- SerializationError(const char *s):
- BaseException(s)
- {}
+ SerializationError(std::string s): BaseException(s) {}
};
-class LoadError : public BaseException
-{
+class LoadError : public BaseException {
public:
- LoadError(const char *s):
- BaseException(s)
- {}
+ LoadError(std::string s): BaseException(s) {}
};
-class ContainerFullException : public BaseException
-{
+class ContainerFullException : public BaseException {
public:
- ContainerFullException(const char *s):
- BaseException(s)
- {}
+ ContainerFullException(std::string s): BaseException(s) {}
};
-class SettingNotFoundException : public BaseException
-{
+class SettingNotFoundException : public BaseException {
public:
- SettingNotFoundException(const char *s):
- BaseException(s)
- {}
+ SettingNotFoundException(std::string s): BaseException(s) {}
};
-class InvalidFilenameException : public BaseException
-{
+class InvalidFilenameException : public BaseException {
public:
- InvalidFilenameException(const char *s):
- BaseException(s)
- {}
+ InvalidFilenameException(std::string s): BaseException(s) {}
};
-class ProcessingLimitException : public BaseException
-{
+class ProcessingLimitException : public BaseException {
public:
- ProcessingLimitException(const char *s):
- BaseException(s)
- {}
+ ProcessingLimitException(std::string s): BaseException(s) {}
};
-class CommandLineError : public BaseException
-{
+class CommandLineError : public BaseException {
public:
- CommandLineError(const char *s):
- BaseException(s)
- {}
+ CommandLineError(std::string s): BaseException(s) {}
};
-class ItemNotFoundException : public BaseException
-{
+class ItemNotFoundException : public BaseException {
public:
- ItemNotFoundException(const char *s):
- BaseException(s)
- {}
+ ItemNotFoundException(std::string s): BaseException(s) {}
+};
+
+class ServerError : public BaseException {
+public:
+ ServerError(std::string s): BaseException(s) {}
};
// Only used on Windows (SEH)
-class FatalSystemException : public BaseException
-{
+class FatalSystemException : public BaseException {
public:
- FatalSystemException(const char *s):
- BaseException(s)
- {}
+ FatalSystemException(std::string s): BaseException(s) {}
};
/*
@@ -159,7 +126,7 @@ public:
InvalidPositionException():
BaseException("Somebody tried to get/set something in a nonexistent position.")
{}
- InvalidPositionException(const char *s):
+ InvalidPositionException(std::string s):
BaseException(s)
{}
};