forked from qt-creator/qt-creator
Sqlite: Add extended exceptions for can't open errors
Change-Id: Ib092b5fe721b8b063f8c503cc1a650447e393951 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -468,13 +468,19 @@ void BaseStatement::checkForStepError(int resultCode) const
|
||||
case SQLITE_CORRUPT:
|
||||
throw DatabaseIsCorrupt();
|
||||
case SQLITE_CANTOPEN_CONVPATH:
|
||||
throw CannotOpenConvPath();
|
||||
case SQLITE_CANTOPEN_DIRTYWAL:
|
||||
throw CannotOpenDirtyWal();
|
||||
case SQLITE_CANTOPEN_FULLPATH:
|
||||
throw CannotCovertToFullPath();
|
||||
case SQLITE_CANTOPEN_ISDIR:
|
||||
throw CannotOpenDirectoryPath();
|
||||
case SQLITE_CANTOPEN_NOTEMPDIR:
|
||||
throw CannotOpenNoTempDir();
|
||||
case SQLITE_CANTOPEN_SYMLINK:
|
||||
throw CannotOpenSynbolicLink();
|
||||
case SQLITE_CANTOPEN:
|
||||
throwCannotOpen("SqliteStatement::stepStatement: Cannot open database or temporary file.");
|
||||
throw CannotOpen();
|
||||
}
|
||||
|
||||
throwUnknowError("SqliteStatement::stepStatement: unknown error has happened");
|
||||
@@ -661,11 +667,6 @@ void BaseStatement::throwExecutionInterrupted(const char *) const
|
||||
throw ExecutionInterrupted{};
|
||||
}
|
||||
|
||||
void BaseStatement::throwCannotOpen(const char *) const
|
||||
{
|
||||
throw CannotOpen{};
|
||||
}
|
||||
|
||||
QString BaseStatement::columnName(int column) const
|
||||
{
|
||||
return QString::fromUtf8(sqlite3_column_name(m_compiledStatement.get(), column));
|
||||
|
@@ -130,7 +130,6 @@ public:
|
||||
[[noreturn]] void throwDatabaseExceedsMaximumFileSize(const char *whatHasHappened) const;
|
||||
[[noreturn]] void throwDataTypeMismatch(const char *whatHasHappened) const;
|
||||
[[noreturn]] void throwExecutionInterrupted(const char *whatHasHappened) const;
|
||||
[[noreturn]] void throwCannotOpen(const char *whatHasHappened) const;
|
||||
|
||||
QString columnName(int column) const;
|
||||
|
||||
|
@@ -624,4 +624,34 @@ const char *ConnectionsVirtualTableIsLocked::what() const noexcept
|
||||
return "Sqlite::ConnectionsVirtualTableIsLocked";
|
||||
}
|
||||
|
||||
const char *CannotOpenConvPath::what() const noexcept
|
||||
{
|
||||
return "Sqlite::CannotOpenConvPath";
|
||||
}
|
||||
|
||||
const char *CannotOpenDirtyWal::what() const noexcept
|
||||
{
|
||||
return "Sqlite::CannotOpenDirtyWal";
|
||||
}
|
||||
|
||||
const char *CannotCovertToFullPath::what() const noexcept
|
||||
{
|
||||
return "Sqlite::CannotCovertToFullPath";
|
||||
}
|
||||
|
||||
const char *CannotOpenDirectoryPath::what() const noexcept
|
||||
{
|
||||
return "Sqlite::CannotOpenDirectoryPath";
|
||||
}
|
||||
|
||||
const char *CannotOpenNoTempDir::what() const noexcept
|
||||
{
|
||||
return "Sqlite::CannotOpenNoTempDir";
|
||||
}
|
||||
|
||||
const char *CannotOpenSynbolicLink::what() const noexcept
|
||||
{
|
||||
return "Sqlite::CannotOpenSynbolicLink";
|
||||
}
|
||||
|
||||
} // namespace Sqlite
|
||||
|
@@ -712,6 +712,48 @@ public:
|
||||
const char *what() const noexcept override;
|
||||
};
|
||||
|
||||
class SQLITE_EXPORT CannotOpenConvPath : public CannotOpen
|
||||
{
|
||||
public:
|
||||
using CannotOpen::CannotOpen;
|
||||
const char *what() const noexcept override;
|
||||
};
|
||||
|
||||
class SQLITE_EXPORT CannotOpenDirtyWal : public CannotOpen
|
||||
{
|
||||
public:
|
||||
using CannotOpen::CannotOpen;
|
||||
const char *what() const noexcept override;
|
||||
};
|
||||
|
||||
class SQLITE_EXPORT CannotCovertToFullPath : public CannotOpen
|
||||
{
|
||||
public:
|
||||
using CannotOpen::CannotOpen;
|
||||
const char *what() const noexcept override;
|
||||
};
|
||||
|
||||
class SQLITE_EXPORT CannotOpenDirectoryPath : public CannotOpen
|
||||
{
|
||||
public:
|
||||
using CannotOpen::CannotOpen;
|
||||
const char *what() const noexcept override;
|
||||
};
|
||||
|
||||
class SQLITE_EXPORT CannotOpenNoTempDir : public CannotOpen
|
||||
{
|
||||
public:
|
||||
using CannotOpen::CannotOpen;
|
||||
const char *what() const noexcept override;
|
||||
};
|
||||
|
||||
class SQLITE_EXPORT CannotOpenSynbolicLink : public CannotOpen
|
||||
{
|
||||
public:
|
||||
using CannotOpen::CannotOpen;
|
||||
const char *what() const noexcept override;
|
||||
};
|
||||
|
||||
class SQLITE_EXPORT CannotCreateChangeSetIterator : public Exception
|
||||
{
|
||||
public:
|
||||
|
Reference in New Issue
Block a user