diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-14 14:26:38 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-14 14:26:38 -0300 |
| commit | 294bc6ecabf14c09c9bc8644704921dcf97cb44e (patch) | |
| tree | 279b1e0bab53901a1647ac63c1c724f0f789a663 /src/mongo/util/assert_util.h | |
| parent | 70be7c27a251621187a1de533462ae2bb1e3bd39 (diff) | |
| parent | 1e917fd798aa25b7066d4b414b51184f13d5a092 (diff) | |
Update upstream source from tag 'upstream/6.0.10'debian/6.0.10-1
Update to upstream version '6.0.10'
with Debian dir 2d176fa254eee97b139f712fec5709641335a8c3
Diffstat (limited to 'src/mongo/util/assert_util.h')
| -rw-r--r-- | src/mongo/util/assert_util.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/mongo/util/assert_util.h b/src/mongo/util/assert_util.h index 4a9e7479443..d423fa3454f 100644 --- a/src/mongo/util/assert_util.h +++ b/src/mongo/util/assert_util.h @@ -150,6 +150,19 @@ public: }; /** + * Use `throwTransactionTooLargeForCache()` instead of throwing + * `TransactionTooLargeForCache` directly. + */ +class TransactionTooLargeForCacheException final : public DBException { +public: + TransactionTooLargeForCacheException(const Status& status) : DBException(status) {} + +private: + void defineOnlyInFinalSubclassToPreventSlicing() final {} +}; + + +/** * The base class of all DBExceptions for codes of the given ErrorCategory to allow catching by * category. */ @@ -165,6 +178,8 @@ protected: } }; +class WriteConflictException; +class TemporarilyUnavailableException; /** * This namespace contains implementation details for our error handling code and should not be used @@ -203,6 +218,21 @@ struct ExceptionForDispatcher<code, CategoryList<categories...>> { ExceptionForImpl<code, ExceptionForCat<categories>...>>; }; +template <> +struct ExceptionForDispatcher<ErrorCodes::WriteConflict> { + using type = WriteConflictException; +}; + +template <> +struct ExceptionForDispatcher<ErrorCodes::TemporarilyUnavailable> { + using type = TemporarilyUnavailableException; +}; + +template <> +struct ExceptionForDispatcher<ErrorCodes::TransactionTooLargeForCache> { + using type = TransactionTooLargeForCacheException; +}; + } // namespace error_details @@ -670,3 +700,8 @@ Status exceptionToStatus() noexcept; * Like `MONGO_UNREACHABLE`, but triggers a `tassert` instead of an `invariant` */ #define MONGO_UNREACHABLE_TASSERT(msgid) tasserted(msgid, "Hit a MONGO_UNREACHABLE_TASSERT!") + +/** + * Like `MONGO_UNIMPLEMENTED`, but triggers a `tassert` instead of an `invariant` + */ +#define MONGO_UNIMPLEMENTED_TASSERT(msgid) tasserted(msgid, "Hit a MONGO_UNIMPLEMENTED_TASSERT!") |
