AMCAX Kernel
Geometry kernel for CAD/CAE/CAM
九韶内核 1.0.0.0
载入中...
搜索中...
未找到
Exception.hpp 文件参考

Exception handling in AMCAX Meshing lib. 更多...

#include <utilities/Logger.hpp>
#include <cassert>
#include <iostream>
#include <stdexcept>
Exception.hpp 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

class  AMCAX::Meshing::MeshBaseError
 

命名空间

namespace  AMCAX
 AMCAX 内核提供的所有接口所在的命名空间。
 
namespace  AMCAX::Meshing
 AMCAX Meshing 模块提供的所有接口所在的命名空间。
 

宏定义

#define DEFINE_ERROR_TYPE(err, base)
 
#define AMCAXMeshing_Throw(exception, message, ...)
 
#define AMCAXMeshing_Throw_if(condition, exception, message, ...)
 
#define AMCAXMeshing_Throw_Logic_Error(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Construction_Error(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Dimension_Error(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Dimension_Mismatch(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Divided_by_Zero(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Domain_Error(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Infinite_Solutions(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Negative_Value(err_code, message, ...)
 
#define AMCAXMeshing_Throw_No_Such_Object(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Deleted_Object(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Not_Done_Error(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Null_Object(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Null_Value(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Out_of_Range(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Type_Mismatch(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Invalid_Argument(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Size_Mismatch(err_code, message, ...)
 
#define AMCAXMeshing_Throw_Logic_Error_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Construction_Error_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Dimension_Error_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Dimension_Mismatch_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Divided_by_Zero_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Domain_Error_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Infinite_Solutions_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Negative_Value_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_No_Such_Object_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Deleted_Object_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Not_Done_Error_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Null_Object_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Null_Value_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Out_of_Range_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Type_Mismatch_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Invalid_Argument_if(cond, err_code, message, ...)
 
#define AMCAXMeshing_Throw_Size_Mismatch_if(cond, err_code, 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, ...)
 

枚举

enum class  ErrorCode {
  NoError = 0 , LogicError , InvalidArgument , DomainError ,
  RuntimeError , FilePathError , FileFormatError , MeshHasNonManifold ,
  MeshHasSelfInter , MeshHasNonManifoldOrSelfInter , NumericError , NotImplemented ,
  Underflow , Overflow , OutOfRange
}
 

函数

 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
 

详细描述

Exception handling in AMCAX Meshing lib.

This file is part of AMCAX kernel.

宏定义说明

◆ AMCAXMeshing_Throw_Construction_Error

#define AMCAXMeshing_Throw_Construction_Error ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshConstructionError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Construction_Error_if

#define AMCAXMeshing_Throw_Construction_Error_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshConstructionError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Deleted_Object

#define AMCAXMeshing_Throw_Deleted_Object ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshDeletedObject, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Deleted_Object_if

#define AMCAXMeshing_Throw_Deleted_Object_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshDeletedObject, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Dimension_Error

#define AMCAXMeshing_Throw_Dimension_Error ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshDimensionError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Dimension_Error_if

#define AMCAXMeshing_Throw_Dimension_Error_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshDimensionError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Dimension_Mismatch

#define AMCAXMeshing_Throw_Dimension_Mismatch ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshDimensionMismatch, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Dimension_Mismatch_if

#define AMCAXMeshing_Throw_Dimension_Mismatch_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshDimensionMismatch, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Divided_by_Zero

#define AMCAXMeshing_Throw_Divided_by_Zero ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshDividedByZero, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Divided_by_Zero_if

#define AMCAXMeshing_Throw_Divided_by_Zero_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshDividedByZero, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Domain_Error

#define AMCAXMeshing_Throw_Domain_Error ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshDomainError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Domain_Error_if

#define AMCAXMeshing_Throw_Domain_Error_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshDomainError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Infinite_Solutions

#define AMCAXMeshing_Throw_Infinite_Solutions ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshInfiniteSolutions, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Infinite_Solutions_if

#define AMCAXMeshing_Throw_Infinite_Solutions_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshInfiniteSolutions, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Invalid_Argument

#define AMCAXMeshing_Throw_Invalid_Argument ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshTypeMismatch, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Invalid_Argument_if

#define AMCAXMeshing_Throw_Invalid_Argument_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshInvalidArgument, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Logic_Error

#define AMCAXMeshing_Throw_Logic_Error ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshLogicError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Logic_Error_if

#define AMCAXMeshing_Throw_Logic_Error_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshLogicError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Negative_Value

#define AMCAXMeshing_Throw_Negative_Value ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshNegativeValue, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Negative_Value_if

#define AMCAXMeshing_Throw_Negative_Value_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshNegativeValue, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_No_Such_Object

#define AMCAXMeshing_Throw_No_Such_Object ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshNoSuchObject, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_No_Such_Object_if

#define AMCAXMeshing_Throw_No_Such_Object_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshNoSuchObject, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Not_Done_Error

#define AMCAXMeshing_Throw_Not_Done_Error ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshNotDoneError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Not_Done_Error_if

#define AMCAXMeshing_Throw_Not_Done_Error_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshNotDoneError, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Not_Implemented

#define AMCAXMeshing_Throw_Not_Implemented ( )
值:
throw AMCAX::Meshing::MeshNotImplemented( \
AMCAX::Meshing::ErrorCode::NotImplemented, std::string(__func__), true);

◆ AMCAXMeshing_Throw_Not_Implemented_Checked

#define AMCAXMeshing_Throw_Not_Implemented_Checked ( )
值:
throw AMCAX::Meshing::MeshNotImplemented( \
AMCAX::Meshing::ErrorCode::NotImplemented, std::string(__func__), true);

◆ AMCAXMeshing_Throw_Null_Object

#define AMCAXMeshing_Throw_Null_Object ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshNullObject, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Null_Object_if

#define AMCAXMeshing_Throw_Null_Object_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshNullObject, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Null_Value

#define AMCAXMeshing_Throw_Null_Value ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshNullValue, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Null_Value_if

#define AMCAXMeshing_Throw_Null_Value_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshNullValue, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Out_of_Range

#define AMCAXMeshing_Throw_Out_of_Range ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshOutOfRange, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Out_of_Range_if

#define AMCAXMeshing_Throw_Out_of_Range_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshOutOfRange, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Size_Mismatch

#define AMCAXMeshing_Throw_Size_Mismatch ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshSizeMismatch, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Size_Mismatch_if

#define AMCAXMeshing_Throw_Size_Mismatch_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshSizeMismatch, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Type_Mismatch

#define AMCAXMeshing_Throw_Type_Mismatch ( err_code,
message,
... )
值:
AMCAXMeshing_Throw(MeshTypeMismatch, err_code, message, ##__VA_ARGS__)

◆ AMCAXMeshing_Throw_Type_Mismatch_if

#define AMCAXMeshing_Throw_Type_Mismatch_if ( cond,
err_code,
message,
... )
值:
AMCAXMeshing_Throw_if(cond, MeshTypeMismatch, err_code, message, ##__VA_ARGS__)

◆ DEFINE_ERROR_TYPE

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