QEverCloud  6.1.0
Unofficial Evernote Cloud API for Qt
Exceptions.h
Go to the documentation of this file.
1 
9 #ifndef QEVERCLOUD_EXCEPTIONS_H
10 #define QEVERCLOUD_EXCEPTIONS_H
11 
12 #include "EverCloudException.h"
13 #include "Export.h"
14 #include "Optional.h"
16 #include "generated/Types.h"
17 
18 #include <QNetworkReply>
19 #include <QObject>
20 #include <QString>
21 
22 namespace qevercloud {
23 
25 
30 {
31 public:
33  NetworkException(QNetworkReply::NetworkError error);
34  NetworkException(QNetworkReply::NetworkError error, QString message);
35  virtual ~NetworkException() noexcept override;
36 
37  bool operator==(const NetworkException & other) const;
38  bool operator!=(const NetworkException & other) const;
39 
40  QNetworkReply::NetworkError type() const;
41 
42  const char * what() const noexcept override;
43 
44  virtual EverCloudExceptionDataPtr exceptionData() const override;
45 
46 protected:
47  QNetworkReply::NetworkError m_type;
48 };
49 
55 {
56  Q_OBJECT
57  Q_DISABLE_COPY(NetworkExceptionData)
58 public:
59  explicit NetworkExceptionData(QString error, QNetworkReply::NetworkError type);
60  virtual void throwException() const override;
61 
62 protected:
63  QNetworkReply::NetworkError m_type;
64 };
65 
67 
73 {
74 public:
75  enum class Type {
76  UNKNOWN = 0,
77  UNKNOWN_METHOD = 1,
78  INVALID_MESSAGE_TYPE = 2,
79  WRONG_METHOD_NAME = 3,
80  BAD_SEQUENCE_ID = 4,
81  MISSING_RESULT = 5,
82  INTERNAL_ERROR = 6,
83  PROTOCOL_ERROR = 7,
84  INVALID_DATA = 8
85  };
86 
87  friend QEVERCLOUD_EXPORT QTextStream & operator<<(
88  QTextStream & strm, const Type type);
89 
92  ThriftException(Type type, QString message);
93  virtual ~ThriftException() noexcept override;
94 
95  bool operator==(const ThriftException & other) const;
96  bool operator!=(const ThriftException & other) const;
97 
98  Type type() const;
99 
100  const char * what() const noexcept override;
101 
102  virtual EverCloudExceptionDataPtr exceptionData() const override;
103 
104 protected:
105  Type m_type;
106 };
107 
113 {
114  Q_OBJECT
115  Q_DISABLE_COPY(ThriftExceptionData)
116 public:
117  explicit ThriftExceptionData(QString error, ThriftException::Type type);
118  virtual void throwException() const override;
119 
120 protected:
122 };
123 
125 
131 {
132  Q_OBJECT
133  Q_DISABLE_COPY(EDAMUserExceptionData)
134 public:
136  QString error, EDAMErrorCode errorCode, Optional<QString> parameter);
137 
138  virtual void throwException() const override;
139 
140 protected:
143 };
144 
146 
152 {
153  Q_OBJECT
154  Q_DISABLE_COPY(EDAMSystemExceptionData)
155 public:
157  QString err, EDAMErrorCode errorCode, Optional<QString> message,
158  Optional<qint32> rateLimitDuration);
159 
160  virtual void throwException() const override;
161 
162 protected:
166 };
167 
169 
175 {
176  Q_OBJECT
177  Q_DISABLE_COPY(EDAMNotFoundExceptionData)
178 public:
180  QString error, Optional<QString> identifier, Optional<QString> key);
181 
182  virtual void throwException() const override;
183 
184 protected:
187 };
188 
190 
196  public EvernoteExceptionData
197 {
198  Q_OBJECT
199  Q_DISABLE_COPY(EDAMInvalidContactsExceptionData)
200 public:
202  QList<Contact> contacts, Optional<QString> parameter,
203  Optional<QList<EDAMInvalidContactReason> > reasons);
204 
205  virtual void throwException() const override;
206 
207 protected:
208  QList<Contact> m_contacts;
211 };
212 
214 
219  public EDAMSystemException
220 {
221 public:
222  virtual EverCloudExceptionDataPtr exceptionData() const override;
223 };
224 
226 
233 {
234  Q_OBJECT
236 public:
238  QString error, EDAMErrorCode errorCode, Optional<QString> message,
239  Optional<qint32> rateLimitDuration);
240 
241  virtual void throwException() const override;
242 };
243 
245 
250 {
251 public:
252  virtual EverCloudExceptionDataPtr exceptionData() const override;
253 };
254 
256 
263 {
264  Q_OBJECT
265  Q_DISABLE_COPY(EDAMSystemExceptionAuthExpiredData)
266 public:
268  QString error, EDAMErrorCode errorCode, Optional<QString> message,
269  Optional<qint32> rateLimitDuration);
270 
271  virtual void throwException() const override;
272 };
273 
274 } // namespace qevercloud
275 
276 #endif // QEVERCLOUD_EXCEPTIONS_H
qevercloud::EDAMSystemExceptionAuthExpiredData
Definition: Exceptions.h:263
qevercloud::ThriftExceptionData::ThriftExceptionData
ThriftExceptionData(QString error, ThriftException::Type type)
Export.h
Optional.h
qevercloud::EDAMErrorCode
EDAMErrorCode
Definition: EDAMErrorCode.h:113
qevercloud::EDAMInvalidContactsExceptionData::throwException
virtual void throwException() const override
qevercloud::EDAMUserExceptionData
Definition: Exceptions.h:131
qevercloud::ThriftException::ThriftException
ThriftException(Type type)
Types.h
qevercloud::EDAMInvalidContactsExceptionData::m_parameter
Optional< QString > m_parameter
Definition: Exceptions.h:209
qevercloud::EDAMSystemExceptionAuthExpiredData::throwException
virtual void throwException() const override
qevercloud::EDAMSystemExceptionData::EDAMSystemExceptionData
EDAMSystemExceptionData(QString err, EDAMErrorCode errorCode, Optional< QString > message, Optional< qint32 > rateLimitDuration)
qevercloud::ThriftException
Definition: Exceptions.h:73
qevercloud::EDAMSystemExceptionRateLimitReachedData::throwException
virtual void throwException() const override
qevercloud::EDAMSystemExceptionAuthExpired::exceptionData
virtual EverCloudExceptionDataPtr exceptionData() const override
qevercloud::EDAMSystemExceptionAuthExpiredData::EDAMSystemExceptionAuthExpiredData
EDAMSystemExceptionAuthExpiredData(QString error, EDAMErrorCode errorCode, Optional< QString > message, Optional< qint32 > rateLimitDuration)
EverCloudException.h
qevercloud::NetworkExceptionData::m_type
QNetworkReply::NetworkError m_type
Definition: Exceptions.h:63
qevercloud::EDAMInvalidContactsExceptionData
Definition: Exceptions.h:197
qevercloud
Definition: AsyncResult.h:21
qevercloud::EDAMNotFoundExceptionData::throwException
virtual void throwException() const override
qevercloud::NetworkException
The NetworkException class represents QNetworkReply level errors.
Definition: Exceptions.h:30
qevercloud::ThriftException::~ThriftException
virtual ~ThriftException() noexcept override
qevercloud::NetworkException::NetworkException
NetworkException()
qevercloud::EDAMSystemExceptionRateLimitReached::exceptionData
virtual EverCloudExceptionDataPtr exceptionData() const override
qevercloud::Optional< QString >
qevercloud::ThriftException::ThriftException
ThriftException(Type type, QString message)
qevercloud::EDAMSystemExceptionData
Definition: Exceptions.h:152
qevercloud::EDAMSystemExceptionRateLimitReachedData
Definition: Exceptions.h:233
qevercloud::ThriftException::operator<<
friend QEVERCLOUD_EXPORT QTextStream & operator<<(QTextStream &strm, const Type type)
qevercloud::EDAMUserExceptionData::throwException
virtual void throwException() const override
qevercloud::EDAMSystemExceptionData::m_rateLimitDuration
Optional< qint32 > m_rateLimitDuration
Definition: Exceptions.h:165
qevercloud::EDAMUserExceptionData::m_errorCode
EDAMErrorCode m_errorCode
Definition: Exceptions.h:141
qevercloud::EDAMErrorCode::UNKNOWN
@ UNKNOWN
qevercloud::NetworkExceptionData::throwException
virtual void throwException() const override
qevercloud::EDAMSystemExceptionData::throwException
virtual void throwException() const override
qevercloud::EverCloudExceptionData
EverCloudException counterpart for asynchronous API.
Definition: EverCloudException.h:130
qevercloud::ThriftException::ThriftException
ThriftException()
qevercloud::EDAMSystemException
Definition: Types.h:5916
qevercloud::EDAMSystemExceptionAuthExpired
Definition: Exceptions.h:250
qevercloud::EDAMSystemExceptionData::m_message
Optional< QString > m_message
Definition: Exceptions.h:164
qevercloud::ThriftExceptionData
Definition: Exceptions.h:113
qevercloud::EDAMInvalidContactsExceptionData::m_reasons
Optional< QList< EDAMInvalidContactReason > > m_reasons
Definition: Exceptions.h:210
qevercloud::EDAMInvalidContactsExceptionData::EDAMInvalidContactsExceptionData
EDAMInvalidContactsExceptionData(QList< Contact > contacts, Optional< QString > parameter, Optional< QList< EDAMInvalidContactReason > > reasons)
qevercloud::EDAMNotFoundExceptionData::m_identifier
Optional< QString > m_identifier
Definition: Exceptions.h:185
qevercloud::NetworkExceptionData::NetworkExceptionData
NetworkExceptionData(QString error, QNetworkReply::NetworkError type)
qevercloud::NetworkExceptionData
Definition: Exceptions.h:55
qevercloud::ThriftExceptionData::throwException
virtual void throwException() const override
qevercloud::EDAMUserExceptionData::m_parameter
Optional< QString > m_parameter
Definition: Exceptions.h:142
qevercloud::ThriftExceptionData::m_type
ThriftException::Type m_type
Definition: Exceptions.h:121
qevercloud::EverCloudException
Definition: EverCloudException.h:33
QEVERCLOUD_EXPORT
#define QEVERCLOUD_EXPORT
Definition: Export.h:19
qevercloud::EDAMInvalidContactsExceptionData::m_contacts
QList< Contact > m_contacts
Definition: Exceptions.h:208
qevercloud::EDAMNotFoundExceptionData
Definition: Exceptions.h:175
qevercloud::ThriftException::Type
Type
Definition: Exceptions.h:75
qevercloud::EDAMSystemExceptionRateLimitReachedData::EDAMSystemExceptionRateLimitReachedData
EDAMSystemExceptionRateLimitReachedData(QString error, EDAMErrorCode errorCode, Optional< QString > message, Optional< qint32 > rateLimitDuration)
qevercloud::EverCloudExceptionDataPtr
std::shared_ptr< EverCloudExceptionData > EverCloudExceptionDataPtr
Definition: EverCloudException.h:149
qevercloud::EDAMUserExceptionData::EDAMUserExceptionData
EDAMUserExceptionData(QString error, EDAMErrorCode errorCode, Optional< QString > parameter)
EDAMErrorCode.h
qevercloud::NetworkException::NetworkException
NetworkException(QNetworkReply::NetworkError error, QString message)
qevercloud::EDAMNotFoundExceptionData::m_key
Optional< QString > m_key
Definition: Exceptions.h:186
qevercloud::EDAMErrorCode::INTERNAL_ERROR
@ INTERNAL_ERROR
qevercloud::EDAMSystemExceptionData::m_errorCode
EDAMErrorCode m_errorCode
Definition: Exceptions.h:163
qevercloud::EDAMSystemExceptionRateLimitReached
Definition: Exceptions.h:220
qevercloud::EDAMNotFoundExceptionData::EDAMNotFoundExceptionData
EDAMNotFoundExceptionData(QString error, Optional< QString > identifier, Optional< QString > key)
qevercloud::EvernoteExceptionData
Definition: EverCloudException.h:175
qevercloud::NetworkException::~NetworkException
virtual ~NetworkException() noexcept override
qevercloud::NetworkException::NetworkException
NetworkException(QNetworkReply::NetworkError error)