connectivity/source/commontools/dbexception.cxx | 47 +++++++++++++++--------- 1 file changed, 31 insertions(+), 16 deletions(-)
New commits: commit 66636097f0464beffa678e0898bf379718494c10 Author: Caolán McNamara <[email protected]> AuthorDate: Fri Sep 24 10:04:16 2021 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Sep 24 13:19:27 2021 +0200 split SQLExceptionInfo::append Change-Id: I4e86e580843042e482e8732843a45a9eedfad320 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122567 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/connectivity/source/commontools/dbexception.cxx b/connectivity/source/commontools/dbexception.cxx index 2efc4a6976b3..624999d8dd94 100644 --- a/connectivity/source/commontools/dbexception.cxx +++ b/connectivity/source/commontools/dbexception.cxx @@ -187,25 +187,41 @@ void SQLExceptionInfo::prepend( const OUString& _rErrorMessage ) m_eType = TYPE::SQLException; } - -void SQLExceptionInfo::append( TYPE _eType, const OUString& _rErrorMessage, const OUString& _rSQLState, const sal_Int32 _nErrorCode ) +namespace { - // create the to-be-appended exception - Any aAppend; - switch ( _eType ) + Any createException(SQLExceptionInfo::TYPE eType, const OUString& rErrorMessage, const OUString& rSQLState, const sal_Int32 nErrorCode) { - 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::append: invalid exception type: this will crash!" ); - break; + // create the to-be-appended exception + 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; } +} - SQLException& pAppendException = const_cast<SQLException &>(*o3tl::forceAccess<SQLException>(aAppend)); - pAppendException.Message = _rErrorMessage; - pAppendException.SQLState = _rSQLState; - pAppendException.ErrorCode = _nErrorCode; +void SQLExceptionInfo::append( TYPE _eType, const OUString& _rErrorMessage, const OUString& _rSQLState, const sal_Int32 _nErrorCode ) +{ + // create the to-be-appended exception + Any aAppend = createException(_eType, _rErrorMessage, _rSQLState, _nErrorCode); // find the end of the current chain Any* pChainIterator = &m_aContent; @@ -233,7 +249,6 @@ void SQLExceptionInfo::append( TYPE _eType, const OUString& _rErrorMessage, cons } } - void SQLExceptionInfo::doThrow() { if ( m_aContent.getValueTypeClass() == TypeClass_EXCEPTION )
