AMCAX Kernel 1.0.0.0
Loading...
Searching...
No Matches
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_Logic_Error(message, ...)
 
#define  AMCAXMeshing_Throw_Construction_Error(message, ...)
 
#define  AMCAXMeshing_Throw_Dimension_Mismatch(message, ...)
 
#define  AMCAXMeshing_Throw_No_Such_Object(message, ...)
 
#define  AMCAXMeshing_Throw_Null_Object(message, ...)
 
#define  AMCAXMeshing_Throw_Out_of_Range(message, ...)
 
#define  AMCAXMeshing_Throw_Type_Mismatch(message, ...)
 
#define  AMCAXMeshing_Throw_Invalid_Argument(message, ...)
 
#define  AMCAXMeshing_Throw_NonManifold_Mesh(message, ...)
 
#define  AMCAXMeshing_Throw_SelfInter_Mesh(message, ...)
 
#define  AMCAXMeshing_Throw_NonManifoldOrSelfInter_Mesh(message, ...)
 
#define  AMCAXMeshing_Throw_Runtime_Error(message, ...)
 
#define  AMCAXMeshing_Throw_Numeric_Error(message, ...)
 
#define  AMCAXMeshing_Throw_Logic_Error_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Construction_Error_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Dimension_Mismatch_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_No_Such_Object_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Null_Object_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Out_of_Range_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Type_Mismatch_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Invalid_Argument_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_NonManifold_Mesh_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_SelfInter_Mesh_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_NonManifoldOrSelfInter_Mesh_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Runtime_Error_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Numeric_Error_if(cond, message, ...)
 
#define  AMCAXMeshing_Throw_Not_Implemented()
 
#define  AMCAXMeshing_Throw_Not_Implemented_Checked()
 
#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, ...)
 

Enumerations

enum class  MeshingError {
  UnknownError = 0x20600000 , InvalidArgument = 0x20600001 , TypeMismatch = 0x20600002 , LogicError ,
  ConstructionError , DomainError , NonManifoldMesh , SelfInterMesh ,
  NonManifoldOrSelfInterMesh , OutOfRange , NullObject , NoSuchObject ,
  RuntimeError , NumericError
}
 

Functions

AMCAXMeshing_API std::error_code  AMCAX::MakeErrorCode (Meshing::MeshingError ec) noexcept
 Construct error code from enumeration.
 

Detailed Description

Exception handling in AMCAX Meshing lib.

This file is part of AMCAX kernel.

Macro Definition Documentation

◆ AMCAXMeshing_Throw_Construction_Error

#define AMCAXMeshing_Throw_Construction_Error ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::ConstructionError, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Construction_Error_if

#define AMCAXMeshing_Throw_Construction_Error_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::ConstructionError, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Dimension_Mismatch

#define AMCAXMeshing_Throw_Dimension_Mismatch ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::TypeMismatch, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Dimension_Mismatch_if

#define AMCAXMeshing_Throw_Dimension_Mismatch_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::TypeMismatch, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Invalid_Argument

#define AMCAXMeshing_Throw_Invalid_Argument ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::InvalidArgument, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Invalid_Argument_if

#define AMCAXMeshing_Throw_Invalid_Argument_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::InvalidArgument, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Logic_Error

#define AMCAXMeshing_Throw_Logic_Error ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::LogicError, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Logic_Error_if

#define AMCAXMeshing_Throw_Logic_Error_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::LogicError, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_No_Such_Object

#define AMCAXMeshing_Throw_No_Such_Object ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::NoSuchObject, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_No_Such_Object_if

#define AMCAXMeshing_Throw_No_Such_Object_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::NoSuchObject, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_NonManifold_Mesh

#define AMCAXMeshing_Throw_NonManifold_Mesh ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::NonManifoldMesh, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_NonManifold_Mesh_if

#define AMCAXMeshing_Throw_NonManifold_Mesh_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::NonManifoldMesh, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_NonManifoldOrSelfInter_Mesh

#define AMCAXMeshing_Throw_NonManifoldOrSelfInter_Mesh ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::NonManifoldOrSelfInterMesh, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_NonManifoldOrSelfInter_Mesh_if

#define AMCAXMeshing_Throw_NonManifoldOrSelfInter_Mesh_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::NonManifoldOrSelfInterMesh, \
message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Not_Implemented

#define AMCAXMeshing_Throw_Not_Implemented ( )
Value:
throw AMCAX::Meshing::MeshNotImplemented( \
std::string("[NMNotImplemented] in ") + __FUNCTION__ + "()");

◆ AMCAXMeshing_Throw_Not_Implemented_Checked

#define AMCAXMeshing_Throw_Not_Implemented_Checked ( )
Value:
throw AMCAX::Meshing::MeshNotImplemented( \
std::string("[NMNotImplemented] in ") + __FUNCTION__ + "()");

◆ AMCAXMeshing_Throw_Null_Object

#define AMCAXMeshing_Throw_Null_Object ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::NullObject, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Null_Object_if

#define AMCAXMeshing_Throw_Null_Object_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::NullObject, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Numeric_Error

#define AMCAXMeshing_Throw_Numeric_Error ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::NumericError, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Numeric_Error_if

#define AMCAXMeshing_Throw_Numeric_Error_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::NumericError, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Out_of_Range

#define AMCAXMeshing_Throw_Out_of_Range ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::OutOfRange, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Out_of_Range_if

#define AMCAXMeshing_Throw_Out_of_Range_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::OutOfRange, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Runtime_Error

#define AMCAXMeshing_Throw_Runtime_Error ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::RuntimeError, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Runtime_Error_if

#define AMCAXMeshing_Throw_Runtime_Error_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::RuntimeError, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_SelfInter_Mesh

#define AMCAXMeshing_Throw_SelfInter_Mesh ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::SelfInterMesh, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_SelfInter_Mesh_if

#define AMCAXMeshing_Throw_SelfInter_Mesh_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::SelfInterMesh, message, \
##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Type_Mismatch

#define AMCAXMeshing_Throw_Type_Mismatch ( message ,
...  )
Value:
AMCAXMeshing_Throw(MeshingError::TypeMismatch, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Type_Mismatch_if

#define AMCAXMeshing_Throw_Type_Mismatch_if ( cond ,
message ,
...  )
Value:
AMCAXMeshing_Throw_if(cond, MeshingError::TypeMismatch, message, \
##__VA_ARGS__)

◆ DEFINE_ERROR_TYPE

#define DEFINE_ERROR_TYPE ( err ,
base  )
Value:
class err : public base \
{ \
public: \
explicit err(const std::string &message) \
: base(message) \
{ \
} \
};