47 #define POTHOS_EXCEPTION_TRY try{try 55 #define POTHOS_EXCEPTION_CATCH(catchExpr) \ 56 catch(const Pothos::Exception &){throw;}\ 57 catch(const Poco::Exception &ex){throw Pothos::Exception(ex.displayText());}\ 58 catch(const std::exception &ex){throw Pothos::Exception(ex.what());}\ 59 catch(...){throw Pothos::Exception("unknown exception");}\ 70 Exception(
const std::string& msg,
int code = 0);
73 Exception(
const std::string& msg,
const std::string& arg,
int code = 0);
89 virtual const char* name()
const throw();
92 virtual const char* className()
const throw();
95 virtual const char* what()
const throw();
104 const std::string& message()
const;
110 std::string displayText()
const;
120 virtual void rethrow()
const;
131 void message(
const std::string& msg);
134 void extendedMessage(
const std::string& arg);
177 #define POTHOS_DECLARE_EXCEPTION_CODE(API, CLS, BASE, CODE) \ 178 class API CLS: public BASE \ 181 CLS(int code = CODE); \ 182 CLS(const std::string& msg, int code = CODE); \ 183 CLS(const std::string& msg, const std::string& arg, int code = CODE); \ 184 CLS(const std::string& msg, const Pothos::Exception& exc, int code = CODE); \ 185 CLS(const CLS& exc); \ 187 CLS& operator = (const CLS& exc); \ 188 const char* name() const throw(); \ 189 const char* className() const throw(); \ 190 Pothos::Exception* clone() const; \ 191 void rethrow() const; \ 194 #define POTHOS_DECLARE_EXCEPTION(API, CLS, BASE) \ 195 POTHOS_DECLARE_EXCEPTION_CODE(API, CLS, BASE, 0) 197 #define POTHOS_IMPLEMENT_EXCEPTION(CLS, BASE, NAME) \ 198 CLS::CLS(int code): BASE(code) \ 201 CLS::CLS(const std::string& msg, int code): BASE(msg, code) \ 204 CLS::CLS(const std::string& msg, const std::string& arg, int code): BASE(msg, arg, code) \ 207 CLS::CLS(const std::string& msg, const Pothos::Exception& exc, int code): BASE(msg, exc, code) \ 210 CLS::CLS(const CLS& exc): BASE(exc) \ 213 CLS::~CLS() throw() \ 216 CLS& CLS::operator = (const CLS& exc) \ 218 BASE::operator = (exc); \ 221 const char* CLS::name() const throw() \ 225 const char* CLS::className() const throw() \ 227 return typeid(*this).name(); \ 229 Pothos::Exception* CLS::clone() const \ 231 return new CLS(*this); \ 233 void CLS::rethrow() const \ Definition: Exception.hpp:286
Definition: Exception.hpp:251
Definition: Exception.hpp:277
Definition: Exception.hpp:253
Definition: Exception.hpp:246
const std::string & message() const
Definition: Exception.hpp:153
Definition: Exception.hpp:282
Definition: Exception.hpp:256
Definition: Exception.hpp:279
#define POTHOS_API
Definition: Config.hpp:41
Definition: Exception.hpp:276
Definition: Exception.hpp:258
Definition: Exception.hpp:285
Definition: Exception.hpp:247
Definition: Exception.hpp:267
Definition: Exception.hpp:243
Definition: Exception.hpp:284
Definition: Exception.hpp:275
Definition: Testing.hpp:134
Definition: Exception.hpp:283
Definition: Exception.hpp:262
Definition: Exception.hpp:245
Definition: Exception.hpp:268
Definition: Exception.hpp:266
Definition: Exception.hpp:248
Definition: Exception.hpp:249
Definition: Exception.hpp:274
const Exception * nested() const
Definition: Exception.hpp:147
Definition: Exception.hpp:278
POTHOS_DECLARE_EXCEPTION(POTHOS_API, ManagedClassLookupError, RuntimeException)
int code() const
Returns the message text.
Definition: Exception.hpp:165
Definition: Exception.hpp:242
Definition: Exception.hpp:265
Definition: Exception.hpp:244
Definition: Exception.hpp:257
Definition: Exception.hpp:259
Definition: Exception.hpp:281
Definition: Exception.hpp:260
Definition: Exception.hpp:255
Definition: Exception.hpp:261
Definition: Exception.hpp:271
Definition: Exception.hpp:288
Definition: Exception.hpp:280
Definition: Exception.hpp:252
Definition: Exception.hpp:250
Definition: Exception.hpp:65
Definition: Exception.hpp:273
Definition: Exception.hpp:272
Definition: Exception.hpp:264
Definition: Exception.hpp:289
Definition: Exception.hpp:263