Lumiera  0.pre.03
»edityourfreedom«
lumiera::error Namespace Reference

Typedefs

using Config = LumieraError< LERR_(CONFIG), Invalid >
 
using External = LumieraError< LERR_(EXTERNAL)>
 
using Fatal = LumieraError< LERR_(FATAL), Logic >
 
using Flag = LumieraError< LERR_(FLAG), State >
 
using Invalid = LumieraError< LERR_(INVALID)>
 
using Logic = LumieraError< LERR_(LOGIC)>
 
using State = LumieraError< LERR_(STATE)>
 

Classes

class  LumieraError
 Derived specific exceptions within Lumiera's exception hierarchy. More...
 

Functions

void assertion_terminate (const string &location)
 throw an error::Fatal indicating "assertion failure" More...
 
const string default_usermsg (Error *) noexcept
 the message shown to the user per default if an exception reaches one of the top-level catch clauses. More...
 
CStr detailInfo ()
 
void install_unexpectedException_handler ()
 install our own handler for undeclared exceptions. More...
 
 LUMIERA_ERROR_DECLARE (LOGIC)
 contradiction to internal logic assumptions detected More...
 
 LUMIERA_ERROR_DECLARE (FATAL)
 unable to cope with, internal logic floundered More...
 
 LUMIERA_ERROR_DECLARE (CONFIG)
 execution aborted due to misconfiguration More...
 
 LUMIERA_ERROR_DECLARE (STATE)
 unforeseen internal state More...
 
 LUMIERA_ERROR_DECLARE (FLAG)
 non-cleared lumiera errorstate from C code More...
 
 LUMIERA_ERROR_DECLARE (INVALID)
 invalid input or parameters encountered More...
 
 LUMIERA_ERROR_DECLARE (EXTERNAL)
 failure in external service the application relies on More...
 
 LUMIERA_ERROR_DECLARE (ASSERTION)
 assertion failure More...
 
 LUMIERA_ERROR_DECLARE (LIFECYCLE)
 Lifecycle assumptions violated. More...
 
 LUMIERA_ERROR_DECLARE (WRONG_TYPE)
 runtime type mismatch More...
 
 LUMIERA_ERROR_DECLARE (ITER_EXHAUST)
 end of sequence reached More...
 
 LUMIERA_ERROR_DECLARE (CAPACITY)
 predefined fixed storage capacity More...
 
 LUMIERA_ERROR_DECLARE (INDEX_BOUNDS)
 index out of bounds More...
 
 LUMIERA_ERROR_DECLARE (BOTTOM_VALUE)
 invalid or NIL value More...
 
 LUMIERA_ERROR_DECLARE (UNCONNECTED)
 missing connection More...
 
 LUMIERA_ERROR_DECLARE (UNIMPLEMENTED)
 unimplemented feature More...
 
 LUMIERA_ERROR_DEFINE (LOGIC, "internal logic broken")
 
 LUMIERA_ERROR_DEFINE (FATAL, "floundered")
 
 LUMIERA_ERROR_DEFINE (CONFIG, "misconfiguration")
 
 LUMIERA_ERROR_DEFINE (STATE, "unforeseen state")
 
 LUMIERA_ERROR_DEFINE (FLAG, "non-cleared lumiera errorstate")
 
 LUMIERA_ERROR_DEFINE (INVALID, "invalid input or parameters")
 
 LUMIERA_ERROR_DEFINE (EXTERNAL, "failure in external service")
 
 LUMIERA_ERROR_DEFINE (ASSERTION, "assertion failure")
 
 LUMIERA_ERROR_DEFINE (LIFECYCLE, "Lifecycle assumptions violated")
 
 LUMIERA_ERROR_DEFINE (WRONG_TYPE, "runtime type mismatch")
 
 LUMIERA_ERROR_DEFINE (ITER_EXHAUST, "end of sequence reached")
 
 LUMIERA_ERROR_DEFINE (CAPACITY, "predefined fixed storage capacity")
 
 LUMIERA_ERROR_DEFINE (INDEX_BOUNDS, "index out of bounds")
 
 LUMIERA_ERROR_DEFINE (BOTTOM_VALUE, "invalid or NIL value")
 
 LUMIERA_ERROR_DEFINE (UNCONNECTED, "missing connection")
 
 LUMIERA_ERROR_DEFINE (UNIMPLEMENTED,"using a feature not yet implemented....")
 
void lumiera_unexpectedException () noexcept
 global function for handling unknown exceptions encountered at functions declaring not to throw this kind of exception. More...
 

Typedef Documentation

◆ Logic

using Logic = LumieraError<LERR_(LOGIC)>

Definition at line 212 of file error.hpp.

◆ Fatal

using Fatal = LumieraError<LERR_(FATAL), Logic>

Definition at line 213 of file error.hpp.

◆ State

using State = LumieraError<LERR_(STATE)>

Definition at line 214 of file error.hpp.

◆ Flag

using Flag = LumieraError<LERR_(FLAG), State>

Definition at line 215 of file error.hpp.

◆ Invalid

using Invalid = LumieraError<LERR_(INVALID)>

Definition at line 216 of file error.hpp.

◆ Config

using Config = LumieraError<LERR_(CONFIG), Invalid>

Definition at line 217 of file error.hpp.

◆ External

using External = LumieraError<LERR_(EXTERNAL)>

Definition at line 218 of file error.hpp.

Function Documentation

◆ default_usermsg()

const string lumiera::error::default_usermsg ( Error )
inlinenoexcept

the message shown to the user per default if an exception reaches one of the top-level catch clauses.

Todo:

to be localised

develop a framework to set more specific yet friendly messages

Definition at line 58 of file error-exception.cpp.

Referenced by Error::Error().

+ Here is the caller graph for this function:

◆ detailInfo()

CStr detailInfo ( )
Returns
error detail-info if currently set, a default message else

Definition at line 64 of file error-exception.cpp.

References util::isnil(), LUMIERA_ERROR_DEFINE(), and lumiera_error_extra().

Referenced by Error::Error(), lumiera::maybeThrow(), and lumiera::throwOnError().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LUMIERA_ERROR_DEFINE() [1/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( LOGIC  ,
"internal logic broken"   
)

Referenced by detailInfo().

+ Here is the caller graph for this function:

◆ LUMIERA_ERROR_DEFINE() [2/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( FATAL  ,
"floundered"   
)

◆ LUMIERA_ERROR_DEFINE() [3/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( CONFIG  ,
"misconfiguration"   
)

◆ LUMIERA_ERROR_DEFINE() [4/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( STATE  ,
"unforeseen state"   
)

◆ LUMIERA_ERROR_DEFINE() [5/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( FLAG  ,
"non-cleared lumiera errorstate"   
)

◆ LUMIERA_ERROR_DEFINE() [6/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( INVALID  ,
"invalid input or parameters"   
)

◆ LUMIERA_ERROR_DEFINE() [7/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( EXTERNAL  ,
"failure in external service"   
)

◆ LUMIERA_ERROR_DEFINE() [8/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( ASSERTION  ,
"assertion failure"   
)

◆ LUMIERA_ERROR_DEFINE() [9/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( LIFECYCLE  ,
"Lifecycle assumptions violated"   
)

◆ LUMIERA_ERROR_DEFINE() [10/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( WRONG_TYPE  ,
"runtime type mismatch"   
)

◆ LUMIERA_ERROR_DEFINE() [11/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( ITER_EXHAUST  ,
"end of sequence reached"   
)

◆ LUMIERA_ERROR_DEFINE() [12/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( CAPACITY  ,
"predefined fixed storage capacity"   
)

◆ LUMIERA_ERROR_DEFINE() [13/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( INDEX_BOUNDS  ,
"index out of bounds"   
)

◆ LUMIERA_ERROR_DEFINE() [14/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( BOTTOM_VALUE  ,
"invalid or NIL value"   
)

◆ LUMIERA_ERROR_DEFINE() [15/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( UNCONNECTED  ,
"missing connection"   
)

◆ LUMIERA_ERROR_DEFINE() [16/16]

lumiera::error::LUMIERA_ERROR_DEFINE ( UNIMPLEMENTED  ,
"using a feature not yet implemented...."   
)

◆ lumiera_unexpectedException()

void lumiera_unexpectedException ( )
noexcept

global function for handling unknown exceptions encountered at functions declaring not to throw this kind of exception.

Basically, any such event can be considered a severe design flaw; we can just add some diagnostics prior to halting.

Definition at line 180 of file error-exception.cpp.

References util::cStr(), Error::getID(), Error::getUsermsg(), util::isnil(), lumiera_error(), Error::rootCause(), lib::meta::typeStr(), and Error::what().

Referenced by Error::extractCauseMsg(), Error::prependInfo(), and AllocationCluster::~AllocationCluster().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ assertion_terminate()

void assertion_terminate ( const string &  location)

throw an error::Fatal indicating "assertion failure"

Definition at line 221 of file error-exception.cpp.

Referenced by Error::prependInfo().

+ Here is the caller graph for this function:

◆ LUMIERA_ERROR_DECLARE() [1/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( LOGIC  )

contradiction to internal logic assumptions detected

◆ LUMIERA_ERROR_DECLARE() [2/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( FATAL  )

unable to cope with, internal logic floundered

◆ LUMIERA_ERROR_DECLARE() [3/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( CONFIG  )

execution aborted due to misconfiguration

◆ LUMIERA_ERROR_DECLARE() [4/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( STATE  )

unforeseen internal state

◆ LUMIERA_ERROR_DECLARE() [5/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( FLAG  )

non-cleared lumiera errorstate from C code

◆ LUMIERA_ERROR_DECLARE() [6/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( INVALID  )

invalid input or parameters encountered

◆ LUMIERA_ERROR_DECLARE() [7/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( EXTERNAL  )

failure in external service the application relies on

◆ LUMIERA_ERROR_DECLARE() [8/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( ASSERTION  )

assertion failure

◆ LUMIERA_ERROR_DECLARE() [9/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( LIFECYCLE  )

Lifecycle assumptions violated.

◆ LUMIERA_ERROR_DECLARE() [10/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( WRONG_TYPE  )

runtime type mismatch

◆ LUMIERA_ERROR_DECLARE() [11/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( ITER_EXHAUST  )

end of sequence reached

◆ LUMIERA_ERROR_DECLARE() [12/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( CAPACITY  )

predefined fixed storage capacity

◆ LUMIERA_ERROR_DECLARE() [13/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( INDEX_BOUNDS  )

index out of bounds

◆ LUMIERA_ERROR_DECLARE() [14/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( BOTTOM_VALUE  )

invalid or NIL value

◆ LUMIERA_ERROR_DECLARE() [15/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( UNCONNECTED  )

missing connection

◆ LUMIERA_ERROR_DECLARE() [16/16]

lumiera::error::LUMIERA_ERROR_DECLARE ( UNIMPLEMENTED  )

unimplemented feature

◆ install_unexpectedException_handler()

void lumiera::error::install_unexpectedException_handler ( )

install our own handler for undeclared exceptions.

Will be called automatically ON_BASIC_INIT when linking exception.cpp

Referenced by Error::extractCauseMsg().

+ Here is the caller graph for this function: