-rw-r--r-- | include/opkele/exception.h | 95 |
1 files changed, 88 insertions, 7 deletions
diff --git a/include/opkele/exception.h b/include/opkele/exception.h index 2ff44b7..a8c3339 100644 --- a/include/opkele/exception.h +++ b/include/opkele/exception.h @@ -25,7 +25,11 @@ # define OPKELE_CP_ CODEPOINT, /** + * open function-try-block + */ +# define OPKELE_FUNC_TRY try +/** * the simple rethrow of konforka-based exception */ -# define OPKELE_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw } +# define OPKELE_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw; } #else /* OPKELE_HAVE_KONFORKA */ # include <exception> @@ -45,4 +49,8 @@ # define OPKELE_CP_ /** + * the dummy define for the opening function-try-block + */ +# define OPKELE_FUNC_TRY +/** * the dummy define for the konforka-based rethrow of exception */ @@ -70,11 +78,8 @@ namespace opkele { # ifdef OPKELE_HAVE_KONFORKA explicit - exception(const string& fi,const string& fu,int l,const string& w) - : konforka::exception(fi,fu,l,w) { } + exception(const string& fi,const string& fu,int l,const string& w); # else /* OPKELE_HAVE_KONFORKA */ string _what; - explicit - exception(const string& w) - : _what(w) { } + explicit exception(const string& w); virtual ~exception() throw(); virtual const char * what() const throw(); @@ -157,5 +162,5 @@ namespace opkele { public: string setup_url; - id_res_setup(OPKELE_E_PARS,const string& su) + id_res_setup(OPKELE_E_PARS,const string& su="") : id_res_failed(OPKELE_E_CONS), setup_url(su) { } ~id_res_setup() throw() { } @@ -180,4 +185,40 @@ namespace opkele { /** + * thown when the user cancelled authentication process. + */ + class id_res_cancel : public id_res_failed { + public: + id_res_cancel(OPKELE_E_PARS) + : id_res_failed(OPKELE_E_CONS) { } + }; + + /** + * thrown in case of nonce reuse or otherwise imperfect nonce. + */ + class id_res_bad_nonce : public id_res_failed { + public: + id_res_bad_nonce(OPKELE_E_PARS) + : id_res_failed(OPKELE_E_CONS) { } + }; + + /** + * thrown if return_to didn't pass verification + */ + class id_res_bad_return_to : public id_res_failed { + public: + id_res_bad_return_to(OPKELE_E_PARS) + : id_res_failed(OPKELE_E_CONS) { } + }; + + /** + * thrown if OP isn't authorized to make an assertion + */ + class id_res_unauthorized : public id_res_failed { + public: + id_res_unauthorized(OPKELE_E_PARS) + : id_res_failed(OPKELE_E_CONS) { } + }; + + /** * openssl malfunction occured */ @@ -213,4 +254,34 @@ namespace opkele { /** + * htmltidy related error occured + */ + class exception_tidy : public exception { + public: + int _rc; + exception_tidy(OPKELE_E_PARS); + exception_tidy(OPKELE_E_PARS,int r); + ~exception_tidy() throw() { } + }; + + /** + * exception thrown in case of failed discovery + */ + class failed_discovery : public exception { + public: + failed_discovery(OPKELE_E_PARS) + : exception(OPKELE_E_CONS) { } + }; + + /** + * unsuccessfull xri resolution + */ + class failed_xri_resolution : public failed_discovery { + public: + long _code; + failed_xri_resolution(OPKELE_E_PARS,long _c=-1) + : failed_discovery(OPKELE_E_CONS), _code(_c) { } + }; + + /** * not implemented (think pure virtual) member function executed, signfies * programmer error @@ -231,4 +302,14 @@ namespace opkele { }; + /** + * thrown in case of unsupported parameter encountered (e.g. unsupported + * association type). + */ + class unsupported : public exception { + public: + unsupported(OPKELE_E_PARS) + : exception(OPKELE_E_CONS) { } + }; + } |