30 lines
1.1 KiB
Text
30 lines
1.1 KiB
Text
|
|
A C++ exception class and macros with easy nested declaration and localisation
|
|
data.
|
|
|
|
The point of this system is to permits to easily add to exceptions instances
|
|
some informations about _where_ the exceptions are thrown.
|
|
|
|
To do so, it uses compilers macros that indicates the current function, file and
|
|
line (`__FUNCTION__`, `__FILE__` and `__LINE__` for g++) and merge those information
|
|
with the given description returned by the _what_ standard method.
|
|
|
|
Example:
|
|
`throw Existential_Observation( "Shit happens", E_INFOS );`
|
|
|
|
Additionaly, it permits a one-line declaration of new exceptions, derived from
|
|
existing ones.
|
|
|
|
Example:
|
|
`EXCEPTION( Exception, Existential_Observation );
|
|
EXCEPTION( Existential_Observation, Pastafarism_Observation );`
|
|
|
|
Note that the base "Exception" class derivate from std::exception.
|
|
|
|
It also provides a macro to easily throw an exception
|
|
that permits to use dynamic streamed messages inline and
|
|
without having to specify E_INFOS.
|
|
|
|
Example:
|
|
`RAISE( Pastafarism_Observation, "Shit happens with " << 42 << " noodly appendages" );`
|
|
|