FlowException.<init> - corda

corda / net.corda.core.flows / FlowException / <init>

# <init>

`FlowException(message: String?, cause: Throwable?)`
`FlowException(message: String?)`
`FlowException(cause: Throwable?)`
`FlowException()` `FlowException(message: String?, cause: Throwable?, originalErrorId: Long? = null)`

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 FlowSession.receive or FlowSession.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).

If the rethrown FlowException is uncaught in counterparty flows and propagation triggers then the exception is downgraded to an UnexpectedFlowEndException. This means only immediate counterparty flows will receive information about what the exception was.

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.