1#ifndef NEFORCE_CORE_EXCEPTION_ERROR_CATEGORY_HPP__
2#define NEFORCE_CORE_EXCEPTION_ERROR_CATEGORY_HPP__
14NEFORCE_BEGIN_NAMESPACE__
37class NEFORCE_API error_category :
public icomparable<error_category> {
39 error_category()
noexcept =
default;
40 virtual ~error_category()
noexcept =
default;
42 error_category(
const error_category&) =
delete;
43 error_category& operator=(
const error_category&) =
delete;
49 NEFORCE_NODISCARD
virtual const char*
name() const noexcept = 0;
83 NEFORCE_NODISCARD
bool equal_to(const error_category& rhs) const noexcept {
return this == &rhs; }
84 NEFORCE_NODISCARD
bool less_than(
const error_category& rhs)
const noexcept {
92 static const error_category&
generic()
noexcept;
98 static const error_category& system() noexcept;
110 NEFORCE_NODISCARD
const char*
name() const noexcept
override {
return "generic"; }
137 NEFORCE_NODISCARD
const char*
name() const noexcept
override {
return "system"; }
154NEFORCE_END_NAMESPACE__
virtual error_condition default_error_condition(int32_t ev) const noexcept
获取错误码对应的默认错误条件
virtual string message(int32_t ev) const =0
获取错误码对应的可读描述
virtual bool equivalent(int code, const error_condition &condition) const noexcept
检查错误码与错误条件是否等价
virtual const char * name() const noexcept=0
获取错误类别名称
string message(int32_t ev) const override
获取错误码对应的可读描述
error_condition default_error_condition(int32_t ev) const noexcept override
获取错误码对应的默认错误条件
const char * name() const noexcept override
获取错误类别名称
string message(int32_t ev) const override
获取错误码对应的可读描述
error_condition default_error_condition(int32_t ev) const noexcept override
获取错误码对应的默认错误条件
const char * name() const noexcept override
获取错误类别名称
const error_category & generic_category() noexcept
获取通用错误类别单例
static const error_category & generic() noexcept
获取通用错误类别单例
error_condition make_error_condition(errc e) noexcept
从 errc 枚举创建错误条件
const error_category & system_category() noexcept
获取系统错误类别单例
static const error_category & system() noexcept
获取系统错误类别单例
error_code make_error_code(errc e) noexcept
从 errc 枚举创建错误码