[Libreoffice-commits] core.git: connectivity/source include/connectivity
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Fri Sep 24 11:44:34 UTC 2021
connectivity/source/commontools/dbexception.cxx | 71 +++++++++++-------------
include/connectivity/dbexception.hxx | 6 ++
2 files changed, 40 insertions(+), 37 deletions(-)
New commits:
commit fa89349b360945d726db0c5f85cd4ccb0822417f
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Sep 24 10:41:27 2021 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Sep 24 13:43:57 2021 +0200
make SQLExceptionInfo utilities available for external use
Change-Id: I6561fa433f6619d8de97983fa962f874cbf5b536
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122570
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/connectivity/source/commontools/dbexception.cxx b/connectivity/source/commontools/dbexception.cxx
index 17f54b8bcaad..e6663f7d188b 100644
--- a/connectivity/source/commontools/dbexception.cxx
+++ b/connectivity/source/commontools/dbexception.cxx
@@ -187,49 +187,46 @@ void SQLExceptionInfo::prepend( const OUString& _rErrorMessage )
m_eType = TYPE::SQLException;
}
-namespace
+// create the to-be-appended exception
+Any SQLExceptionInfo::createException(TYPE eType, const OUString& rErrorMessage, const OUString& rSQLState, const sal_Int32 nErrorCode)
{
- // create the to-be-appended exception
- Any createException(SQLExceptionInfo::TYPE eType, const OUString& rErrorMessage, const OUString& rSQLState, const sal_Int32 nErrorCode)
+ Any aAppend;
+ switch (eType)
{
- Any aAppend;
- switch (eType)
- {
- case SQLExceptionInfo::TYPE::SQLException:
- aAppend <<= SQLException();
- break;
- case SQLExceptionInfo::TYPE::SQLWarning:
- aAppend <<= SQLWarning();
- break;
- case SQLExceptionInfo::TYPE::SQLContext:
- aAppend <<= SQLContext();
- break;
- default:
- TOOLS_WARN_EXCEPTION("connectivity.commontools", "SQLExceptionInfo::createException: invalid exception type: this will crash!");
- break;
- }
-
- SQLException& pAppendException = const_cast<SQLException &>(*o3tl::forceAccess<SQLException>(aAppend));
- pAppendException.Message = rErrorMessage;
- pAppendException.SQLState = rSQLState;
- pAppendException.ErrorCode = nErrorCode;
-
- return aAppend;
+ case TYPE::SQLException:
+ aAppend <<= SQLException();
+ break;
+ case TYPE::SQLWarning:
+ aAppend <<= SQLWarning();
+ break;
+ case TYPE::SQLContext:
+ aAppend <<= SQLContext();
+ break;
+ default:
+ TOOLS_WARN_EXCEPTION("connectivity.commontools", "SQLExceptionInfo::createException: invalid exception type: this will crash!");
+ break;
}
- // find the end of the exception chain
- SQLException* getLastException(SQLException* pLastException)
+ SQLException& pAppendException = const_cast<SQLException &>(*o3tl::forceAccess<SQLException>(aAppend));
+ pAppendException.Message = rErrorMessage;
+ pAppendException.SQLState = rSQLState;
+ pAppendException.ErrorCode = nErrorCode;
+
+ return aAppend;
+}
+
+// find the end of the exception chain
+SQLException* SQLExceptionInfo::getLastException(SQLException* pLastException)
+{
+ SQLException* pException = pLastException;
+ while (pException)
{
- SQLException* pException = pLastException;
- while (pException)
- {
- pException = const_cast<SQLException*>(o3tl::tryAccess<SQLException>(pException->NextException));
- if (!pException)
- break;
- pLastException = pException;
- }
- return pLastException;
+ pException = const_cast<SQLException*>(o3tl::tryAccess<SQLException>(pException->NextException));
+ if (!pException)
+ break;
+ pLastException = pException;
}
+ return pLastException;
}
void SQLExceptionInfo::append( TYPE _eType, const OUString& _rErrorMessage, const OUString& _rSQLState, const sal_Int32 _nErrorCode )
diff --git a/include/connectivity/dbexception.hxx b/include/connectivity/dbexception.hxx
index 4edd174e5635..8c9dfad33efe 100644
--- a/include/connectivity/dbexception.hxx
+++ b/include/connectivity/dbexception.hxx
@@ -131,6 +131,12 @@ public:
m_eType = TYPE::Undefined;
}
+ // create an exception
+ static css::uno::Any createException(TYPE eType, const OUString& rErrorMessage, const OUString& rSQLState, const sal_Int32 nErrorCode);
+
+ // find the end of the exception chain
+ static css::sdbc::SQLException* getLastException(css::sdbc::SQLException* pLastException);
+
private:
void implDetermineType();
};
More information about the Libreoffice-commits
mailing list