Pothos  0.7.0-gf7fbae99
The Pothos dataflow programming software suite
Classes | Namespaces | Macros
Exception.hpp File Reference
#include <Pothos/Config.hpp>
#include <stdexcept>
#include <string>

Go to the source code of this file.

Classes

class  Pothos::Exception
 
class  Pothos::LogicException
 
class  Pothos::AssertionViolationException
 
class  Pothos::NullPointerException
 
class  Pothos::NullValueException
 
class  Pothos::BugcheckException
 
class  Pothos::InvalidArgumentException
 
class  Pothos::NotImplementedException
 
class  Pothos::RangeException
 
class  Pothos::IllegalStateException
 
class  Pothos::InvalidAccessException
 
class  Pothos::SignalException
 
class  Pothos::UnhandledException
 
class  Pothos::RuntimeException
 
class  Pothos::NotFoundException
 
class  Pothos::ExistsException
 
class  Pothos::TimeoutException
 
class  Pothos::SystemException
 
class  Pothos::RegularExpressionException
 
class  Pothos::LibraryLoadException
 
class  Pothos::LibraryAlreadyLoadedException
 
class  Pothos::NoThreadAvailableException
 
class  Pothos::PropertyNotSupportedException
 
class  Pothos::PoolOverflowException
 
class  Pothos::NoPermissionException
 
class  Pothos::OutOfMemoryException
 
class  Pothos::DataException
 
class  Pothos::DataFormatException
 
class  Pothos::SyntaxException
 
class  Pothos::CircularReferenceException
 
class  Pothos::PathSyntaxException
 
class  Pothos::IOException
 
class  Pothos::ProtocolException
 
class  Pothos::FileException
 
class  Pothos::FileExistsException
 
class  Pothos::FileNotFoundException
 
class  Pothos::PathNotFoundException
 
class  Pothos::FileReadOnlyException
 
class  Pothos::FileAccessDeniedException
 
class  Pothos::CreateFileException
 
class  Pothos::OpenFileException
 
class  Pothos::WriteFileException
 
class  Pothos::ReadFileException
 
class  Pothos::UnknownURISchemeException
 
class  Pothos::ApplicationException
 
class  Pothos::BadCastException
 

Namespaces

 Pothos
 

Macros

#define POTHOS_EXCEPTION_TRY   try{try
 
#define POTHOS_EXCEPTION_CATCH(catchExpr)
 
#define POTHOS_DECLARE_EXCEPTION_CODE(API, CLS, BASE, CODE)
 
#define POTHOS_DECLARE_EXCEPTION(API, CLS, BASE)   POTHOS_DECLARE_EXCEPTION_CODE(API, CLS, BASE, 0)
 
#define POTHOS_IMPLEMENT_EXCEPTION(CLS, BASE, NAME)
 

Detailed Description

Definition of various Pothos exception classes.

Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:

The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

◆ POTHOS_DECLARE_EXCEPTION

#define POTHOS_DECLARE_EXCEPTION (   API,
  CLS,
  BASE 
)    POTHOS_DECLARE_EXCEPTION_CODE(API, CLS, BASE, 0)

◆ POTHOS_DECLARE_EXCEPTION_CODE

#define POTHOS_DECLARE_EXCEPTION_CODE (   API,
  CLS,
  BASE,
  CODE 
)
Value:
class API CLS: public BASE \
{ \
public: \
CLS(int code = CODE); \
CLS(const std::string& msg, int code = CODE); \
CLS(const std::string& msg, const std::string& arg, int code = CODE); \
CLS(const std::string& msg, const Pothos::Exception& exc, int code = CODE); \
CLS(const CLS& exc); \
~CLS() throw(); \
CLS& operator = (const CLS& exc); \
const char* name() const throw(); \
const char* className() const throw(); \
Pothos::Exception* clone() const; \
void rethrow() const; \
};
Definition: ArchiveEntry.hpp:20
Definition: Exception.hpp:65

◆ POTHOS_EXCEPTION_CATCH

#define POTHOS_EXCEPTION_CATCH (   catchExpr)
Value:
catch(const Pothos::Exception &){throw;}\
catch(const Poco::Exception &ex){throw Pothos::Exception(ex.displayText());}\
catch(const std::exception &ex){throw Pothos::Exception(ex.what());}\
catch(...){throw Pothos::Exception("unknown exception");}\
}catch(catchExpr)
Definition: Exception.hpp:65

The catch block for a super catch-all exception. Catch exceptions from all known exception types and rethrow any exception as a Pothos::Exception.

Parameters
catchExprthe contents of the catch() keyword

◆ POTHOS_EXCEPTION_TRY

#define POTHOS_EXCEPTION_TRY   try{try

The try block for a super catch-all exception. Use the standard try/catch syntax and bracketing, and always use this macro with POTHOS_EXCEPTION_CATCH.

◆ POTHOS_IMPLEMENT_EXCEPTION

#define POTHOS_IMPLEMENT_EXCEPTION (   CLS,
  BASE,
  NAME 
)