SshExceptions derive from std::exception

Change-Id: Id107ed53fed9ff72e90b662dfc024c4ced24a89d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Nikita Baryshnikov
2017-09-05 14:35:09 +03:00
parent 7eec0f63ac
commit 6fdb0756f7

View File

@@ -31,6 +31,8 @@
#include <QCoreApplication> #include <QCoreApplication>
#include <QString> #include <QString>
#include <exception>
namespace QSsh { namespace QSsh {
namespace Internal { namespace Internal {
@@ -57,25 +59,28 @@ enum SshErrorCode {
#define SSH_SERVER_EXCEPTION(error, errorString) \ #define SSH_SERVER_EXCEPTION(error, errorString) \
SshServerException((error), (errorString), SSH_TR(errorString)) SshServerException((error), (errorString), SSH_TR(errorString))
struct SshServerException struct SshServerException : public std::exception
{ {
SshServerException(SshErrorCode error, const QByteArray &errorStringServer, SshServerException(SshErrorCode error, const QByteArray &errorStringServer,
const QString &errorStringUser) const QString &errorStringUser)
: error(error), errorStringServer(errorStringServer), : error(error), errorStringServer(errorStringServer),
errorStringUser(errorStringUser) {} errorStringUser(errorStringUser) {}
const char *what() const noexcept override { return errorStringServer.constData(); }
const SshErrorCode error; const SshErrorCode error;
const QByteArray errorStringServer; const QByteArray errorStringServer;
const QString errorStringUser; const QString errorStringUser;
}; };
struct SshClientException struct SshClientException : public std::exception
{ {
SshClientException(SshError error, const QString &errorString) SshClientException(SshError error, const QString &errorString)
: error(error), errorString(errorString) {} : error(error), errorString(errorString), errorStringPrintable(errorString.toLocal8Bit()) {}
const char *what() const noexcept override { return errorStringPrintable.constData(); }
const SshError error; const SshError error;
const QString errorString; const QString errorString;
const QByteArray errorStringPrintable;
}; };
} // namespace Internal } // namespace Internal