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:
|
case SQLITE_CORRUPT:
|
||||||
throw DatabaseIsCorrupt();
|
throw DatabaseIsCorrupt();
|
||||||
case SQLITE_CANTOPEN_CONVPATH:
|
case SQLITE_CANTOPEN_CONVPATH:
|
||||||
|
throw CannotOpenConvPath();
|
||||||
case SQLITE_CANTOPEN_DIRTYWAL:
|
case SQLITE_CANTOPEN_DIRTYWAL:
|
||||||
|
throw CannotOpenDirtyWal();
|
||||||
case SQLITE_CANTOPEN_FULLPATH:
|
case SQLITE_CANTOPEN_FULLPATH:
|
||||||
|
throw CannotCovertToFullPath();
|
||||||
case SQLITE_CANTOPEN_ISDIR:
|
case SQLITE_CANTOPEN_ISDIR:
|
||||||
|
throw CannotOpenDirectoryPath();
|
||||||
case SQLITE_CANTOPEN_NOTEMPDIR:
|
case SQLITE_CANTOPEN_NOTEMPDIR:
|
||||||
|
throw CannotOpenNoTempDir();
|
||||||
case SQLITE_CANTOPEN_SYMLINK:
|
case SQLITE_CANTOPEN_SYMLINK:
|
||||||
|
throw CannotOpenSynbolicLink();
|
||||||
case SQLITE_CANTOPEN:
|
case SQLITE_CANTOPEN:
|
||||||
throwCannotOpen("SqliteStatement::stepStatement: Cannot open database or temporary file.");
|
throw CannotOpen();
|
||||||
}
|
}
|
||||||
|
|
||||||
throwUnknowError("SqliteStatement::stepStatement: unknown error has happened");
|
throwUnknowError("SqliteStatement::stepStatement: unknown error has happened");
|
||||||
@@ -661,11 +667,6 @@ void BaseStatement::throwExecutionInterrupted(const char *) const
|
|||||||
throw ExecutionInterrupted{};
|
throw ExecutionInterrupted{};
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseStatement::throwCannotOpen(const char *) const
|
|
||||||
{
|
|
||||||
throw CannotOpen{};
|
|
||||||
}
|
|
||||||
|
|
||||||
QString BaseStatement::columnName(int column) const
|
QString BaseStatement::columnName(int column) const
|
||||||
{
|
{
|
||||||
return QString::fromUtf8(sqlite3_column_name(m_compiledStatement.get(), column));
|
return QString::fromUtf8(sqlite3_column_name(m_compiledStatement.get(), column));
|
||||||
|
@@ -130,7 +130,6 @@ public:
|
|||||||
[[noreturn]] void throwDatabaseExceedsMaximumFileSize(const char *whatHasHappened) const;
|
[[noreturn]] void throwDatabaseExceedsMaximumFileSize(const char *whatHasHappened) const;
|
||||||
[[noreturn]] void throwDataTypeMismatch(const char *whatHasHappened) const;
|
[[noreturn]] void throwDataTypeMismatch(const char *whatHasHappened) const;
|
||||||
[[noreturn]] void throwExecutionInterrupted(const char *whatHasHappened) const;
|
[[noreturn]] void throwExecutionInterrupted(const char *whatHasHappened) const;
|
||||||
[[noreturn]] void throwCannotOpen(const char *whatHasHappened) const;
|
|
||||||
|
|
||||||
QString columnName(int column) const;
|
QString columnName(int column) const;
|
||||||
|
|
||||||
|
@@ -624,4 +624,34 @@ const char *ConnectionsVirtualTableIsLocked::what() const noexcept
|
|||||||
return "Sqlite::ConnectionsVirtualTableIsLocked";
|
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
|
} // namespace Sqlite
|
||||||
|
@@ -712,6 +712,48 @@ public:
|
|||||||
const char *what() const noexcept override;
|
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
|
class SQLITE_EXPORT CannotCreateChangeSetIterator : public Exception
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user