You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
998 B

#ifndef LUAEXCEPTION_H
#define LUAEXCEPTION_H
#include "luadeclarations.h"
/// LuaException, all lua errors are throwed by it
class LuaException : public std::exception
{
public:
LuaException(const std::string& error, int traceLevel = -1);
virtual ~LuaException() throw() { };
void generateLuaErrorMessage(const std::string& error, int traceLevel);
virtual const char* what() const throw() { return m_what.c_str(); }
protected:
LuaException() { }
std::string m_what;
};
class LuaBadNumberOfArgumentsException : public LuaException {
public:
LuaBadNumberOfArgumentsException(int expected = -1, int got = -1);
};
class LuaBadTypeConversinException : public LuaException {
public:
LuaBadTypeConversinException(const std::string& typeName = "an incompatible lua type");
};
class LuaBadValueCastException : public LuaException {
public:
LuaBadValueCastException(const LuaValuePtr& value, const std::string& typeName = "an incompatible lua type");
};
#endif