# Package org.multiverse.api.exceptions

- Exception Summary
  Exception | Description
  --- | ---
  AbortOnlyException | An `IllegalTxnStateException` thrown when a `Txn` is configured as abort only and a prepare/commit is executed.
  AtomicOperationException | A `TxnExecutionException` thrown when an atomic operation has failed (e.g.
  DeadTxnException | An `IllegalTxnStateException` thrown when an action is executed on a `Txn` that is either committed or aborted.
  IllegalCommuteException | A `TxnExecutionException` thrown when `Txn` access is done while a commuting function is being evaluated.
  IllegalTxnFactoryException | An `IllegalStateException` thrown when a `TxnFactory` can't be created because the `TxnConfig` is not correct.
  IllegalTxnStateException | A `TxnExecutionException` thrown when an operation is executed on a `Txn` when it is not in a valid state for that operation.
  InvisibleCheckedException | A `RuntimeException` thrown when a checked exception is thrown but can't be rethrown.
  LockedException | An `AtomicOperationException` thrown when an atomic operation was executed on a `TxnObject` while it was locked.
  PreparedTxnException | An `IllegalTxnStateException` thrown when an operation is executed on a `Txn` while the transaction is prepared.
  PropagationException | An `IllegalStateException` throw when there is a conflict with the `Txn` propagation.
  ReadonlyException | An `IllegalTxnStateException` thrown when a write action is executed using a readonly `Txn`.
  RetryException | A `TxnExecutionException` thrown when retrying a transaction for another attempt fails.
  RetryInterruptedException | A `RetryException` thrown when the blocking operation on a `Txn` using the retry has been interrupted.
  RetryNotAllowedException | A `RetryException` thrown when a `StmUtils.retry()` or `Txn.retry()` is done while the `Txn` doesn't allow blocking transactions.
  RetryNotPossibleException | A `RetryException` throw when a `StmUtils.retry()` or `Txn.retry()` done on a `Txn` without the possibility of progress, for example when the readset of a transaction is empty.
  RetryTimeoutException | A `RetryException` thrown when a transaction times out while it blocks on a retry (so waits for an update).
  StmMismatchException | A `TxnExecutionException` thrown when a transaction encounters encounters a transactional object that belongs to a different Stm instance.
  TodoException | A `RuntimeException` thrown when some part of the implementation is missing.
  TooManyRetriesException | A `RetryException` thrown when a `Txn` is retried too many times.
  TxnExecutionException | A `RuntimeException` thrown when something fails while executing a `Txn`.
  TxnMandatoryException | A `PropagationException` thrown when no `Txn` is available while it is mandatory.
  TxnNotAllowedException | A `PropagationException` thrown when a `Txn` is found, but is not allowed.

- Error Summary
  Error | Description
  --- | ---
  ControlFlowError | An `Error` thrown to regulate control flow inside multiverse `TxnExecutor`.
  PanicError | An `Error` thrown when the state of the `Stm` has been compromised.
  ReadWriteConflict | A `ControlFlowError` thrown when a reading or writing a `TxnObject` failed, e.g.
  RetryError | A `ControlFlowError` thrown when an explicit retry is done on a `Txn`.
  SpeculativeConfigurationError | A `ControlFlowError` thrown for dealing with the speculative configuration mechanism.