corda / net.corda.core.flows / FlowException

# FlowException

`open class FlowException : Exception`

Exception which can be thrown by a FlowLogic at any point in its logic to unexpectedly bring it to a permanent end. The exception will propagate to all counterparty flows and will be thrown on their end the next time they wait on a FlowLogic.receive or FlowLogic.sendAndReceive. Any flow which no longer needs to do a receive, or has already ended, will not receive the exception (if this is required then have them wait for a confirmation message).

FlowException (or a subclass) can be a valid expected response from a flow, particularly ones which act as a service. It is recommended a FlowLogic document the FlowException types it can throw.

### Constructors

<init> | `FlowException(message: String?)` `FlowException(cause: Throwable?)` `FlowException()``FlowException(message: String?, cause: Throwable?)` Exception which can be thrown by a FlowLogic at any point in its logic to unexpectedly bring it to a permanent end. The exception will propagate to all counterparty flows and will be thrown on their end the next time they wait on a FlowLogic.receive or FlowLogic.sendAndReceive. Any flow which no longer needs to do a receive, or has already ended, will not receive the exception (if this is required then have them wait for a confirmation message).

### Properties

cause | `open val cause: Throwable?`
message | `open val message: String?`

### Extension Properties

rootCause | `val Throwable.rootCause: Throwable`

### Inheritors

AssetMismatchException | `class AssetMismatchException : FlowException`
AttachmentResolutionException | `class AttachmentResolutionException : FlowException`
CashException | `class CashException : FlowException`
HashNotFound | `class HashNotFound : FlowException`
InsufficientBalanceException | `class InsufficientBalanceException : FlowException`
NotaryException | `class NotaryException : FlowException`
StateReplacementException | `open class StateReplacementException : FlowException`
TransactionResolutionException | `class TransactionResolutionException : FlowException`
TransactionVerificationException | `sealed class TransactionVerificationException : FlowException`
UnacceptablePriceException | `class UnacceptablePriceException : FlowException`