DtkCore
DTK Core module
载入中...
搜索中...
未找到
derror.h
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DERROR_H
6#define DERROR_H
7#include "dtkcore_global.h"
8#include <QString>
9#include <QDebug>
10
11DCORE_BEGIN_NAMESPACE
15class DError
16{
17public:
22 DError() noexcept
23 : m_code(-1)
24 , m_msg()
25 {
26 }
27
31 DError(const DError &e) noexcept
32 : m_code(e.m_code)
33 , m_msg(e.m_msg)
34 {
35 }
36
41 DError(DError &&e) noexcept
42 : m_code(e.m_code)
43 , m_msg(std::move(e).m_msg)
44 {
45 }
46
52 DError(qint64 code, const QString &msg) noexcept
53 : m_code(code)
54 , m_msg(msg)
55 {
56 }
57
64 DError(qint64 code, QString &&msg) noexcept
65 : m_code(code)
66 , m_msg(std::move(msg))
67 {
68 }
69
74 {
75 m_code = e.m_code;
76 m_msg = e.m_msg;
77 return *this;
78 }
79
85 {
86 m_code = e.m_code;
87 m_msg = std::move(e).m_msg;
88 return *this;
89 }
90
94 ~DError() = default;
95
100 qint64 getErrorCode() const noexcept { return m_code; }
101
106 void setErrorCode(qint64 code) &noexcept { m_code = code; }
107
112 const QString &getErrorMessage() const & { return m_msg; }
113
119 QString getErrorMessage() const && { return std::move(m_msg); }
120
125 void setErrorMessage(const QString &msg) & { m_msg = msg; }
126
130 friend bool operator==(const DError &x, const DError &y) noexcept { return x.m_code == y.m_code and x.m_msg == y.m_msg; }
131
135 friend bool operator!=(const DError &x, const DError &y) noexcept { return !(x == y); }
136
140 friend QDebug operator<<(QDebug debug, const DError &e)
141 {
142 debug << "Error Code:" << e.m_code << "Message:" << e.m_msg;
143 return debug;
144 }
145
146private:
147 qint64 m_code;
148 QString m_msg;
149};
150DCORE_END_NAMESPACE
151#endif
对于错误的包装类
Definition derror.h:16
void setErrorMessage(const QString &msg) &
设置错误信息
Definition derror.h:125
DError(qint64 code, QString &&msg) noexcept
构造函数
Definition derror.h:64
DError(DError &&e) noexcept
移动构造函数
Definition derror.h:41
QString getErrorMessage() const &&
获取错误信息
Definition derror.h:119
void setErrorCode(qint64 code) &noexcept
设置错误代码
Definition derror.h:106
DError & operator=(const DError &e)
重载拷贝赋值运算符
Definition derror.h:73
friend bool operator==(const DError &x, const DError &y) noexcept
重载相等运算符
Definition derror.h:130
friend QDebug operator<<(QDebug debug, const DError &e)
重载输出运算符
Definition derror.h:140
DError() noexcept
默认构造函数
Definition derror.h:22
DError & operator=(DError &&e)
重载移动赋值运算符
Definition derror.h:84
~DError()=default
默认析构函数
const QString & getErrorMessage() const &
获取错误信息
Definition derror.h:112
DError(qint64 code, const QString &msg) noexcept
构造函数
Definition derror.h:52
DError(const DError &e) noexcept
拷贝构造函数
Definition derror.h:31
qint64 getErrorCode() const noexcept
获取错误代码
Definition derror.h:100
friend bool operator!=(const DError &x, const DError &y) noexcept
重载不等运算符
Definition derror.h:135