1#ifndef NEFORCE_CORE_EXCEPTION_SYSTEM_EXCEPTION_HPP__
2#define NEFORCE_CORE_EXCEPTION_SYSTEM_EXCEPTION_HPP__
5NEFORCE_BEGIN_NAMESPACE__
17 explicit system_exception(
const char* info =
"System Access Failed.",
const error_code code =
last_error()) noexcept
22 explicit system_exception(
const error_code code) :
25 explicit system_exception(
const exception& e) :
28 ~system_exception()
override =
default;
30 NEFORCE_NODISCARD
const char*
type() const noexcept
override {
return "system_exception"; }
32 NEFORCE_NODISCARD
virtual const error_code& code() const noexcept {
return code_; }
42struct device_exception : system_exception {
43 explicit device_exception(
const char* info =
"Device Operation Failed.",
45 system_exception(info, code) {}
47 explicit device_exception(
const error_code err) :
48 system_exception(err) {}
50 explicit device_exception(
const exception& e) :
51 system_exception(e) {}
53 ~device_exception()
override =
default;
55 NEFORCE_NODISCARD
const char*
type() const noexcept
override {
return "device_exception"; }
62struct file_exception final : system_exception {
63 explicit file_exception(
const char* info =
"File Operation Failed.",
const error_code code =
last_error()) noexcept
65 system_exception(info, code) {}
67 explicit file_exception(
const error_code err) :
68 system_exception(err) {}
70 explicit file_exception(
const exception& e) :
71 system_exception(e) {}
73 ~file_exception()
override =
default;
75 NEFORCE_NODISCARD
const char*
type() const noexcept
override {
return "file_exception"; }
82struct network_exception : system_exception {
83 explicit network_exception(
const char* info =
"Network Operation or Action Failed.",
85 system_exception(info, code) {}
87 explicit network_exception(
const error_code err) :
88 system_exception(err) {}
90 explicit network_exception(
const exception& e) :
91 system_exception(e) {}
93 ~network_exception()
override =
default;
95 NEFORCE_NODISCARD
const char*
type() const noexcept
override {
return "network_exception"; }
100NEFORCE_END_NAMESPACE__
error_code last_error() noexcept
获取当前系统错误码
const char * type() const noexcept override
获取异常类型
exception(const char *info="")
构造函数
const char * type() const noexcept override
获取异常类型
const char * type() const noexcept override
获取异常类型
const char * type() const noexcept override
获取异常类型