Skip to content

GenICam Base Module Exceptions#

Module: GenICam

Defines#

Name
GENERIC_EXCEPTION
Fires a generic exception, e.g. throw GENERIC_EXCEPTION("%ld too large", Value);.
BAD_ALLOC_EXCEPTION
Fires a bad alloc exception, e.g. throw BAD_ALLOC_EXCEPTION();.
INVALID_ARGUMENT_EXCEPTION
Fires an invalid argument exception, e.g. throw INVALID_ARGUMENT_EXCEPTION("%ld too large", Value);.
OUT_OF_RANGE_EXCEPTION
Fires an out of range exception, e.g. throw OUT_OF_RANGE_EXCEPTION("%ld too large", Value);.
PROPERTY_EXCEPTION
Fires an property exception, e.g. throw PROPERTY_EXCEPTION("%ld too large", Value);.
RUNTIME_EXCEPTION
Fires a runtime exception, e.g. throw RUNTIME_EXCEPTION("buh!")
LOGICAL_ERROR_EXCEPTION
Fires a logical error exception, e.g. throw LOGICAL_ERROR_EXCEPTION("Should never reach this point")
ACCESS_EXCEPTION
Fires a access exception, e.g. throw ACCESS_EXCEPTION("Not everybody")
TIMEOUT_EXCEPTION
Fires a timeout error exception, e.g. throw TIMEOUT_EXCEPTION("Not everybody")
DYNAMICCAST_EXCEPTION
Fires a dynamic cast exception, e.g. throw DYNAMICCAST_EXCEPTION("Not everybody")
CHECK_RANGE_I64(_Value, _Min, _Max, _Inc)
Range check for int64.
CHECK_RANGE_FLT(_Value, _Min, _Max)
Range check for float.
CHECK_DYNAMIC_CAST_POINTER(_Pointer)
Checks if a dynamic_cast is possible.

Macros Documentation#

define GENERIC_EXCEPTION#

#define GENERIC_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::GenericException>(__FILE__, __LINE__).Report

Fires a generic exception, e.g. throw GENERIC_EXCEPTION("%ld too large", Value);.

define BAD_ALLOC_EXCEPTION#

#define BAD_ALLOC_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::BadAllocException>(__FILE__, __LINE__, "BadAllocException" ).Report

Fires a bad alloc exception, e.g. throw BAD_ALLOC_EXCEPTION();.

define INVALID_ARGUMENT_EXCEPTION#

#define INVALID_ARGUMENT_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::InvalidArgumentException>(__FILE__, __LINE__, "InvalidArgumentException" ).Report

Fires an invalid argument exception, e.g. throw INVALID_ARGUMENT_EXCEPTION("%ld too large", Value);.

define OUT_OF_RANGE_EXCEPTION#

#define OUT_OF_RANGE_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::OutOfRangeException>(__FILE__, __LINE__, "OutOfRangeException" ).Report

Fires an out of range exception, e.g. throw OUT_OF_RANGE_EXCEPTION("%ld too large", Value);.

define PROPERTY_EXCEPTION#

#define PROPERTY_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::PropertyException>(__FILE__, __LINE__, "PropertyException" ).Report

Fires an property exception, e.g. throw PROPERTY_EXCEPTION("%ld too large", Value);.

define RUNTIME_EXCEPTION#

#define RUNTIME_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::RuntimeException>(__FILE__, __LINE__, "RuntimeException" ).Report

Fires a runtime exception, e.g. throw RUNTIME_EXCEPTION("buh!")

define LOGICAL_ERROR_EXCEPTION#

#define LOGICAL_ERROR_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::LogicalErrorException>(__FILE__,  __LINE__, "LogicalErrorException" ).Report

Fires a logical error exception, e.g. throw LOGICAL_ERROR_EXCEPTION("Should never reach this point")

define ACCESS_EXCEPTION#

#define ACCESS_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::AccessException>(__FILE__, __LINE__, "AccessException" ).Report

Fires a access exception, e.g. throw ACCESS_EXCEPTION("Not everybody")

define TIMEOUT_EXCEPTION#

#define TIMEOUT_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::TimeoutException>(__FILE__, __LINE__,"TimeoutException" ).Report

Fires a timeout error exception, e.g. throw TIMEOUT_EXCEPTION("Not everybody")

define DYNAMICCAST_EXCEPTION#

#define DYNAMICCAST_EXCEPTION GENICAM_NAMESPACE::ExceptionReporter<GENICAM_NAMESPACE::DynamicCastException>(__FILE__, __LINE__, "DynamicCastException" ).Report

Fires a dynamic cast exception, e.g. throw DYNAMICCAST_EXCEPTION("Not everybody")

define CHECK_RANGE_I64#

#define CHECK_RANGE_I64(
    _Value,
    _Min,
    _Max,
    _Inc
)
if((int64_t)(_Value) < (int64_t)(_Min)) \
            throw OUT_OF_RANGE_EXCEPTION("Value = %" FMT_I64 "d must be equal or greater than Min = %" FMT_I64 "d", (int64_t)(_Value), (int64_t)(_Min)); \
                else if((int64_t)(_Value) > (int64_t)(_Max)) \
            throw OUT_OF_RANGE_EXCEPTION("Value = %" FMT_I64 "d must be equal or smaller than Max = %" FMT_I64 "d", (int64_t)(_Value), (int64_t)(_Max)); \
                else if ( 0 == _Inc ) \
            throw LOGICAL_ERROR_EXCEPTION("Increment must not equal 0!"); \
                else if( ((int64_t)(_Value) - (int64_t)(_Min)) % (int64_t)(_Inc) != 0) \
            throw OUT_OF_RANGE_EXCEPTION("The difference between Value = %" FMT_I64 "d and Min = %" FMT_I64 "d must be dividable without rest by Inc = %" FMT_I64 "d", (int64_t)(_Value), (int64_t)(_Min), (int64_t)(_Inc));

Range check for int64.

define CHECK_RANGE_FLT#

#define CHECK_RANGE_FLT(
    _Value,
    _Min,
    _Max
)
if ((_Value) < (_Min)) \
            throw OUT_OF_RANGE_EXCEPTION( "Value %f must be greater than or equal %f", (_Value), (_Min) ); \
        else if ((_Value) > (_Max)) \
            throw OUT_OF_RANGE_EXCEPTION( "Value %f must be smaller than or equal %f", (_Value), (_Max) );

Range check for float.

define CHECK_DYNAMIC_CAST_POINTER#

#define CHECK_DYNAMIC_CAST_POINTER(
    _Pointer
)
assert( (_Pointer) != NULL ); \
        if (NULL == (_Pointer)) throw LOGICAL_ERROR_EXCEPTION( "Unexpected type in dynamic cast" )

Checks if a dynamic_cast is possible.