-rw-r--r-- | include/opkele/exception.h | 8 | ||||
-rw-r--r-- | lib/exception.cc | 10 |
2 files changed, 16 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 | |||
@@ -27,9 +27,10 @@ | |||
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 |
@@ -73,11 +74,14 @@ namespace opkele { | |||
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 | /** |
diff --git a/lib/exception.cc b/lib/exception.cc index b7c1702..4fe6c87 100644 --- a/lib/exception.cc +++ b/lib/exception.cc | |||
@@ -3,8 +3,18 @@ | |||
3 | #include <opkele/exception.h> | 3 | #include <opkele/exception.h> |
4 | 4 | ||
5 | namespace opkele { | 5 | namespace opkele { |
6 | 6 | ||
7 | # ifndef OPKELE_HAVE_KONFORKA | ||
8 | |||
9 | exception::~exception() throw() { | ||
10 | } | ||
11 | const char *exception::what() const throw() { | ||
12 | return _what.c_str(); | ||
13 | } | ||
14 | |||
15 | # endif | ||
16 | |||
7 | exception_openssl::exception_openssl(OPKELE_E_PARS) | 17 | exception_openssl::exception_openssl(OPKELE_E_PARS) |
8 | : _error(ERR_peek_last_error()), | 18 | : _error(ERR_peek_last_error()), |
9 | _ssl_string(ERR_error_string(_error,0)), | 19 | _ssl_string(ERR_error_string(_error,0)), |
10 | exception(OPKELE_E_CONS_ w+" ["+_ssl_string+']') { | 20 | exception(OPKELE_E_CONS_ w+" ["+_ssl_string+']') { |