AMCAX Kernel 1.0.0.0
Exception.hpp File Reference

Exception handling in AMCAX Meshing lib. More...

#include <utilities/Logger.hpp>
#include <cassert>
#include <iostream>
#include <stdexcept>
Include dependency graph for Exception.hpp:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  AMCAX
 Namespace of all interface in the AMCAX kernel.
 
namespace  AMCAX::Meshing
 Namespace of all interface in the AMCAX Meshing module.
 

Macros

#define DEFINE_ERROR_TYPE(err, base)
 
#define AMCAXMeshing_Throw(exception, message, ...)
 
#define AMCAXMeshing_Throw_if(condition, exception, message, ...)
 
#define AMCAXMeshing_Throw_Logic_Error(message, ...)    AMCAXMeshing_Throw(MeshLogicError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Construction_Error(message, ...)    AMCAXMeshing_Throw(MeshConstructionError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Dimension_Error(message, ...)    AMCAXMeshing_Throw(MeshDimensionError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Dimension_Mismatch(message, ...)    AMCAXMeshing_Throw(MeshDimensionMismatch, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Divided_by_Zero(message, ...)    AMCAXMeshing_Throw(MeshDividedByZero, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Domain_Error(message, ...)    AMCAXMeshing_Throw(MeshDomainError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Infinite_Solutions(message, ...)    AMCAXMeshing_Throw(MeshInfiniteSolutions, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Negative_Value(message, ...)    AMCAXMeshing_Throw(MeshNegativeValue, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_No_Such_Object(message, ...)    AMCAXMeshing_Throw(MeshNoSuchObject, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Deleted_Object(message, ...)    AMCAXMeshing_Throw(MeshDeletedObject, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Not_Done_Error(message, ...)    AMCAXMeshing_Throw(MeshNotDoneError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Null_Object(message, ...)    AMCAXMeshing_Throw(MeshNullObject, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Null_Value(message, ...)    AMCAXMeshing_Throw(MeshNullValue, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Out_of_Range(message, ...)    AMCAXMeshing_Throw(MeshOutOfRange, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Type_Mismatch(message, ...)    AMCAXMeshing_Throw(MeshTypeMismatch, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Invalid_Argument(message, ...)    AMCAXMeshing_Throw(MeshTypeMismatch, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Size_Mismatch(message, ...)    AMCAXMeshing_Throw(MeshSizeMismatch, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Logic_Error_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshLogicError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Construction_Error_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshConstructionError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Dimension_Error_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshDimensionError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Dimension_Mismatch_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshDimensionMismatch, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Divided_by_Zero_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshDividedByZero, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Domain_Error_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshDomainError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Infinite_Solutions_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshInfiniteSolutions, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Negative_Value_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshNegativeValue, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_No_Such_Object_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshNoSuchObject, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Deleted_Object_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshDeletedObject, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Not_Done_Error_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshNotDoneError, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Null_Object_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshNullObject, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Null_Value_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshNullValue, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Out_of_Range_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshOutOfRange, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Type_Mismatch_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshTypeMismatch, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Invalid_Argument_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshInvalidArgument, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Size_Mismatch_if(cond, message, ...)    AMCAXMeshing_Throw_if(cond, MeshSizeMismatch, message, ##__VA_ARGS__)
 
#define AMCAXMeshing_Throw_Not_Implemented()    throw AMCAX::Meshing::MeshNotImplemented(std::string(__func__), true);
 
#define AMCAXMeshing_Throw_Not_Implemented_Checked()    throw AMCAX::Meshing::MeshNotImplemented(std::string(__func__), true);
 
#define AMCAXMeshing_AssertAuxCodes(code)
 behavior when Assertion fails: exit program of throw exception.
 
#define AMCAXMeshing_Exit(message, ...)
 
#define AMCAXMeshing_Assert(condition, message, ...)
 
#define AMCAXMeshing_ExpensiveAssertAuxCodes(code)
 
#define AMCAXMeshing_ExpensiveAssert(condition, message, ...)
 

Functions

 AMCAX::Meshing::DEFINE_ERROR_TYPE (MeshOutOfMemory, MeshProgramError) DEFINE_ERROR_TYPE(MeshNotImplemented
 
MeshProgramError AMCAX::Meshing::DEFINE_ERROR_TYPE (MeshNoMoreObject, MeshProgramError) DEFINE_ERROR_TYPE(MeshNoSuchObject
 
MeshProgramError MeshProgramError AMCAX::Meshing::DEFINE_ERROR_TYPE (MeshDeletedObject, MeshProgramError) DEFINE_ERROR_TYPE(MeshNullObject
 
MeshProgramError MeshProgramError MeshProgramError AMCAX::Meshing::DEFINE_ERROR_TYPE (MeshNullValue, MeshProgramError) DEFINE_ERROR_TYPE(MeshImmutableObject
 

Detailed Description

Exception handling in AMCAX Meshing lib.

This file is part of AMCAX kernel.

Macro Definition Documentation

◆ DEFINE_ERROR_TYPE

#define DEFINE_ERROR_TYPE (   err,
  base 
)
Value:
class err : public base \
{ \
public: \
explicit err(bool hasTime = false) \
: base(hasTime \
? std::string("[" + getLocalTime() + "] ").append(#err) \
: std::string()) \
{ \
} \
explicit err(const std::string &message, bool hasTime = false) \
: base(hasTime ? std::string("[" + getLocalTime() + "] ") \
.append(#err) \
.append(": ") \
.append(message) \
: message) \
{ \
} \
};