summaryrefslogtreecommitdiffabout
path: root/include
Unidiff
Diffstat (limited to 'include') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/exception.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/opkele/exception.h b/include/opkele/exception.h
index 2ac0661..c5f5811 100644
--- a/include/opkele/exception.h
+++ b/include/opkele/exception.h
@@ -7,97 +7,101 @@
7 */ 7 */
8 8
9#include <curl/curl.h> 9#include <curl/curl.h>
10 10
11#include <opkele/opkele-config.h> 11#include <opkele/opkele-config.h>
12#ifdef OPKELE_HAVE_KONFORKA 12#ifdef OPKELE_HAVE_KONFORKA
13# include <konforka/exception.h> 13# include <konforka/exception.h>
14/** 14/**
15 * the exception parameters declaration 15 * the exception parameters declaration
16 */ 16 */
17# define OPKELE_E_PARS const string& fi,const string&fu,int l,const string& w 17# define OPKELE_E_PARS const string& fi,const string&fu,int l,const string& w
18/** 18/**
19 * the exception parameters list to pass to constructor 19 * the exception parameters list to pass to constructor
20 */ 20 */
21# define OPKELE_E_CONS_ fi,fu,l, 21# define OPKELE_E_CONS_ fi,fu,l,
22/** 22/**
23 * the exception codepoint specification 23 * the exception codepoint specification
24 */ 24 */
25# define OPKELE_CP_ CODEPOINT, 25# define OPKELE_CP_ CODEPOINT,
26/** 26/**
27 * the simple rethrow of konforka-based exception 27 * the simple rethrow of konforka-based exception
28 */ 28 */
29# define OPKELE_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw } 29# define OPKELE_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw }
30#else /* OPKELE_HAVE_KONFORKA */ 30#else /* OPKELE_HAVE_KONFORKA */
31# include <stdexcept> 31# include <exception>
32# include <string>
32/** 33/**
33 * the exception parameter declaration 34 * the exception parameter declaration
34 */ 35 */
35# define OPKELE_E_PARS const string& w 36# define OPKELE_E_PARS const string& w
36/** 37/**
37 * the dummy prefix for exception parameters list to prepend in the absence of 38 * the dummy prefix for exception parameters list to prepend in the absence of
38 * konforka library 39 * konforka library
39 */ 40 */
40# define OPKELE_E_CONS_ 41# define OPKELE_E_CONS_
41/** 42/**
42 * the dummy placeholder for konforka exception codepoint specification 43 * the dummy placeholder for konforka exception codepoint specification
43 */ 44 */
44# define OPKELE_CP_ 45# define OPKELE_CP_
45/** 46/**
46 * the dummy define for the konforka-based rethrow of exception 47 * the dummy define for the konforka-based rethrow of exception
47 */ 48 */
48# define OPKELE_RETHROW 49# define OPKELE_RETHROW
49#endif /* OPKELE_HAVE_KONFORKA */ 50#endif /* OPKELE_HAVE_KONFORKA */
50/** 51/**
51 * the exception parameters list to pass to constructor 52 * the exception parameters list to pass to constructor
52 */ 53 */
53# define OPKELE_E_CONS OPKELE_E_CONS_ w 54# define OPKELE_E_CONS OPKELE_E_CONS_ w
54 55
55/* 56/*
56 * @brief the main opkele namespace 57 * @brief the main opkele namespace
57 */ 58 */
58namespace opkele { 59namespace opkele {
59 using std::string; 60 using std::string;
60 61
61 /** 62 /**
62 * the base opkele exception class 63 * the base opkele exception class
63 */ 64 */
64 class exception : public 65 class exception : public
65# ifdef OPKELE_HAVE_KONFORKA 66# ifdef OPKELE_HAVE_KONFORKA
66 konforka::exception 67 konforka::exception
67# else 68# else
68 std::exception 69 std::exception
69# endif 70# endif
70 { 71 {
71 public: 72 public:
72# ifdef OPKELE_HAVE_KONFORKA 73# ifdef OPKELE_HAVE_KONFORKA
73 explicit 74 explicit
74 exception(const string& fi,const string& fu,int l,const string& w) 75 exception(const string& fi,const string& fu,int l,const string& w)
75 : konforka::exception(fi,fu,l,w) { } 76 : konforka::exception(fi,fu,l,w) { }
76# else /* OPKELE_HAVE_KONFORKA */ 77# else /* OPKELE_HAVE_KONFORKA */
78 string _what;
77 explicit 79 explicit
78 exception(const string& w) 80 exception(const string& w)
79 : std::exception(w) { } 81 : _what(w) { }
82 virtual ~exception() throw();
83 virtual const char * what() const throw();
80# endif /* OPKELE_HAVE_KONFORKA */ 84# endif /* OPKELE_HAVE_KONFORKA */
81 }; 85 };
82 86
83 /** 87 /**
84 * thrown in case of failed conversion 88 * thrown in case of failed conversion
85 */ 89 */
86 class failed_conversion : public exception { 90 class failed_conversion : public exception {
87 public: 91 public:
88 failed_conversion(OPKELE_E_PARS) 92 failed_conversion(OPKELE_E_PARS)
89 : exception(OPKELE_E_CONS) { } 93 : exception(OPKELE_E_CONS) { }
90 }; 94 };
91 /** 95 /**
92 * thrown in case of failed lookup (either parameter or persistent store) 96 * thrown in case of failed lookup (either parameter or persistent store)
93 */ 97 */
94 class failed_lookup : public exception { 98 class failed_lookup : public exception {
95 public: 99 public:
96 failed_lookup(OPKELE_E_PARS) 100 failed_lookup(OPKELE_E_PARS)
97 : exception(OPKELE_E_CONS) { } 101 : exception(OPKELE_E_CONS) { }
98 }; 102 };
99 /** 103 /**
100 * thrown in case of bad input (either local or network) 104 * thrown in case of bad input (either local or network)
101 */ 105 */
102 class bad_input : public exception { 106 class bad_input : public exception {
103 public: 107 public: