summaryrefslogtreecommitdiff
path: root/src/exceptions.h
blob: 3e939a08616c75bc6fae507fcba94c8a7af1c155 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#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)
	{}
};

class SettingNotFoundException : public BaseException
{
public:
	SettingNotFoundException(const char *s):
		BaseException(s)
	{}
};

class InvalidFilenameException : public BaseException
{
public:
	InvalidFilenameException(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