summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/konforka/exception.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/konforka/exception.h b/include/konforka/exception.h
index 5e0bf96..dbfe27c 100644
--- a/include/konforka/exception.h
+++ b/include/konforka/exception.h
@@ -13,32 +13,63 @@
13 */ 13 */
14 14
15/** 15/**
16 * @def CODEPOINT 16 * @def CODEPOINT
17 * the convenience definition of the parameters passed to the 17 * the convenience definition of the parameters passed to the
18 * konforka::code_point constructor. 18 * konforka::code_point constructor.
19 */ 19 */
20 #defineCODEPOINT __FILE__,__PRETTY_FUNCTION__,__LINE__ 20 #defineCODEPOINT __FILE__,__PRETTY_FUNCTION__,__LINE__
21/** 21/**
22 * @def NOCODEPOINT 22 * @def NOCODEPOINT
23 * the convenience definition for the codepoint denoting no particular point in 23 * the convenience definition for the codepoint denoting no particular point in
24 * code. 24 * code.
25 */ 25 */
26#define NOCODEPOINT "no information" 26#define NOCODEPOINT "no information"
27 27
28/** 28/**
29 * @def KONFORKA_RETHROW
30 * the convenience definition for seeing the exception and rethrowing it further.
31 */
32#define KONFORKA_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw; }
33
34/**
35 * @def KONFORKA_E_ARGS
36 * the convenience definition for naming codepoint parameters
37 */
38#define KONFORKA_E_PARS const string& fi,const string& fu,int l,const string& w
39
40/**
41 * @def KONFORKA_E_CONS
42 * the convenience definition for passing parameters to constructor
43 */
44#define KONFORKA_E_CONS fi,fu,l,w
45
46/**
47 * @def KONFORKA_E_SUBCLASS
48 * the convenience definition for subclassing konforka exceptions
49 * @param base base class
50 * @param derived derived class
51 */
52#define KONFORKA_E_SUBCLASS(derived,base) \
53 class derived : public base { \
54 public: \
55 explicit derived(KONFORKA_E_PARS) \
56 : base(KONFORKA_E_CONS) { } \
57 }
58
59/**
29 * @brief The main konforka namespace. 60 * @brief The main konforka namespace.
30 */ 61 */
31namespace konforka { 62namespace konforka {
32 using std::string; 63 using std::string;
33 using std::list; 64 using std::list;
34 65
35 /** 66 /**
36 * @brief Pinpoint the code context. 67 * @brief Pinpoint the code context.
37 * 68 *
38 * Class, holding the point in code, for instance, where the exception 69 * Class, holding the point in code, for instance, where the exception
39 * occured. 70 * occured.
40 */ 71 */
41 class code_point { 72 class code_point {
42 public: 73 public:
43 /** 74 /**
44 * The string describing the point in code. 75 * The string describing the point in code.