exception.hpp File Reference

#include "config.hpp"
#include <cstddef>
#include <cassert>
#include <string>
#include <iostream>
#include <sstream>
#include <list>

Go to the source code of this file.

Namespaces

namespace  Arageli
namespace  Arageli::ctrl

Classes

class  Arageli::exception
 Base for all exception classes. More...
class  Arageli::assert_failed
 Exception class that can be trhowed when failed the some assertion. More...
class  Arageli::out_of_range
 Exception situation: an index out of range while indexing the some structure. More...
class  Arageli::invalid_argument
 Exceprion situation: invalid argument in call of the some operation. More...
class  Arageli::division_by_zero
 Exception situation: division by zero. More...
class  Arageli::matrix_is_singular
 Exception situation: the some matrix is singular. More...
class  Arageli::incorrect_string
 Exception situation: the some object have failed initialization from a string. More...
class  Arageli::ctrl::abort

Defines

#define ARAGELI_EXCEPT_LOC(e)   e.add_location(__FILE__, __LINE__)
#define ARAGELI_EXCEPT_LOC_DESC(e, d)   e.add_location(__FILE__, __LINE__, d)
#define ARAGELI_EXCEPT_LOCCTRL_REGION_BEGIN   { try {
#define ARAGELI_EXCEPT_LOCCTRL_REGION_END
#define ARAGELI_THROW_ASSERT_FAILED(EXPR)   { throw ::Arageli::assert_failed(#EXPR, __FILE__, __LINE__); }
 Construct for throwing exception assert_failed or harder failure raising.
#define ARAGELI_ASSERT_ALWAYS_CUST(EXPR, EXCEPT_OBJ)   { if(!(EXPR))throw EXCEPT_OBJ; }
 Always check assertion with a particular exception object.
#define ARAGELI_ASSERT_ALWAYS(EXPR)   { if(!(EXPR))ARAGELI_THROW_ASSERT_FAILED(EXPR); }
 Always check assertion with standard reaction when assertion failed.
#define ARAGELI_ASSERT_0_CUST(EXPR, EXCEPT_OBJ)   ARAGELI_ASSERT_ALWAYS_CUST(EXPR, EXCEPT_OBJ)
#define ARAGELI_ASSERT_0(EXPR)   ARAGELI_ASSERT_ALWAYS(EXPR)
#define ARAGELI_DEBUG_EXEC_0(WHAT)   WHAT
#define ARAGELI_ASSERT_1_CUST(EXPR, EXCEPT_OBJ)   ARAGELI_ASSERT_ALWAYS_CUST(EXPR, EXCEPT_OBJ)
#define ARAGELI_ASSERT_1(EXPR)   ARAGELI_ASSERT_ALWAYS(EXPR)
#define ARAGELI_DEBUG_EXEC_1(WHAT)   WHAT
#define ARAGELI_ASSERT_2_CUST(EXPR, EXCEPT_OBJ)   ARAGELI_ASSERT_ALWAYS_CUST(EXPR, EXCEPT_OBJ)
#define ARAGELI_ASSERT_2(EXPR)   ARAGELI_ASSERT_ALWAYS(EXPR)
#define ARAGELI_DEBUG_EXEC_2(WHAT)   WHAT
#define ARAGELI_ASSERT_3_CUST(EXPR, EXCEPT_OBJ)
#define ARAGELI_ASSERT_3(EXPR)
#define ARAGELI_DEBUG_EXEC_3(WHAT)

Functions

std::ostream & Arageli::operator<< (std::ostream &out, const exception &e)


Detailed Description

This file contains basic exception classes definitions and some macros for assertions that controlled by debug level value (see config.hpp)

Definition in file exception.hpp.


Define Documentation

#define ARAGELI_ASSERT_0 ( EXPR   )     ARAGELI_ASSERT_ALWAYS(EXPR)

Definition at line 278 of file exception.hpp.

#define ARAGELI_ASSERT_0_CUST ( EXPR,
EXCEPT_OBJ   )     ARAGELI_ASSERT_ALWAYS_CUST(EXPR, EXCEPT_OBJ)

Definition at line 275 of file exception.hpp.

#define ARAGELI_ASSERT_1 ( EXPR   )     ARAGELI_ASSERT_ALWAYS(EXPR)

Definition at line 297 of file exception.hpp.

#define ARAGELI_ASSERT_1_CUST ( EXPR,
EXCEPT_OBJ   )     ARAGELI_ASSERT_ALWAYS_CUST(EXPR, EXCEPT_OBJ)

Definition at line 294 of file exception.hpp.

#define ARAGELI_ASSERT_2 ( EXPR   )     ARAGELI_ASSERT_ALWAYS(EXPR)

Definition at line 316 of file exception.hpp.

#define ARAGELI_ASSERT_2_CUST ( EXPR,
EXCEPT_OBJ   )     ARAGELI_ASSERT_ALWAYS_CUST(EXPR, EXCEPT_OBJ)

Definition at line 313 of file exception.hpp.

#define ARAGELI_ASSERT_3 ( EXPR   ) 

Definition at line 343 of file exception.hpp.

#define ARAGELI_ASSERT_3_CUST ( EXPR,
EXCEPT_OBJ   ) 

Definition at line 342 of file exception.hpp.

#define ARAGELI_ASSERT_ALWAYS ( EXPR   )     { if(!(EXPR))ARAGELI_THROW_ASSERT_FAILED(EXPR); }

Always check assertion with standard reaction when assertion failed.

Definition at line 269 of file exception.hpp.

#define ARAGELI_ASSERT_ALWAYS_CUST ( EXPR,
EXCEPT_OBJ   )     { if(!(EXPR))throw EXCEPT_OBJ; }

Always check assertion with a particular exception object.

Definition at line 264 of file exception.hpp.

#define ARAGELI_DEBUG_EXEC_0 ( WHAT   )     WHAT

Definition at line 281 of file exception.hpp.

#define ARAGELI_DEBUG_EXEC_1 ( WHAT   )     WHAT

Definition at line 300 of file exception.hpp.

#define ARAGELI_DEBUG_EXEC_2 ( WHAT   )     WHAT

Definition at line 319 of file exception.hpp.

#define ARAGELI_DEBUG_EXEC_3 ( WHAT   ) 

Definition at line 344 of file exception.hpp.

#define ARAGELI_EXCEPT_LOC (  )     e.add_location(__FILE__, __LINE__)

Definition at line 87 of file exception.hpp.

#define ARAGELI_EXCEPT_LOC_DESC ( e,
 )     e.add_location(__FILE__, __LINE__, d)

Definition at line 88 of file exception.hpp.

#define ARAGELI_EXCEPT_LOCCTRL_REGION_BEGIN   { try {

Definition at line 90 of file exception.hpp.

#define ARAGELI_EXCEPT_LOCCTRL_REGION_END

Value:

}catch(::Arageli::exception& e)         \
    { ARAGELI_EXCEPT_LOC_DESC(e, "Exception gate."); throw; } }

Definition at line 93 of file exception.hpp.

#define ARAGELI_THROW_ASSERT_FAILED ( EXPR   )     { throw ::Arageli::assert_failed(#EXPR, __FILE__, __LINE__); }

Construct for throwing exception assert_failed or harder failure raising.

Definition at line 247 of file exception.hpp.


Generated on Thu Aug 31 17:38:17 2006 for Arageli by  doxygen 1.4.7