NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
ssl_exception.hpp
浏览该文件的文档.
1#ifndef NEFORCE_NETWORK_SSL_SSL_EXCEPTION_HPP__
2#define NEFORCE_NETWORK_SSL_SSL_EXCEPTION_HPP__
3
10
12NEFORCE_BEGIN_NAMESPACE__
13
18
25class NEFORCE_API ssl_error_category final : public error_category {
26public:
30 NEFORCE_NODISCARD const char* name() const noexcept override { return "ssl"; }
31
39 NEFORCE_NODISCARD string message(int32_t ev) const override;
40};
41
46NEFORCE_API const error_category& ssl_category() noexcept;
47 // ErrorCode
49
54
59struct NEFORCE_API ssl_exception final : thirdparty_exception {
64 static error_code last_error() noexcept;
65
72 explicit ssl_exception(const string& info = "SSL Operation Failed.") noexcept :
73 thirdparty_exception(info.data()),
74 code_(last_error()) {}
75
80 explicit ssl_exception(const int code) :
81 thirdparty_exception(ssl_category().message(code).data()),
82 code_(code, ssl_category()) {}
83
89 explicit ssl_exception(const string& info, const int code) noexcept :
90 thirdparty_exception(info.data()),
91 code_(code, ssl_category()) {}
92
93 explicit ssl_exception(const exception& e) :
95
96 ~ssl_exception() override = default;
97
98 NEFORCE_NODISCARD const char* type() const noexcept override { return "ssl_exception"; }
99
104 NEFORCE_NODISCARD const error_code& code() const noexcept { return code_; }
105
106private:
107 error_code code_;
108};
109 // Exceptions
111
112NEFORCE_END_NAMESPACE__
113#endif // NEFORCE_NETWORK_SSL_SSL_EXCEPTION_HPP__
错误类别抽象基类
const char * name() const noexcept override
获取错误类别名称
string message(int32_t ev) const override
获取错误码对应的描述信息
int int32_t
32位有符号整数类型
const error_category & ssl_category() noexcept
获取SSL错误类别单例
constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针
const error_code & code() const noexcept
获取 error_code 对象
ssl_exception(const string &info="SSL Operation Failed.") noexcept
错误信息构造函数
static error_code last_error() noexcept
获取OpenSSL错误队列中的最后一个错误码(不弹出)
ssl_exception(const int code)
错误码构造函数
const char * type() const noexcept override
获取异常类型
ssl_exception(const string &info, const int code) noexcept
构造函数