in reactive/kotlinx-coroutines-reactor/src/Mono.kt [102:116]
override fun onCancelled(cause: Throwable, handled: Boolean) {
/** Cancellation exceptions that were caused by [dispose], that is, came from downstream, are not errors. */
val unwrappedCause = unwrap(cause)
if (getCancellationException() !== unwrappedCause || !disposed) {
try {
/** If [sink] turns out to already be in a terminal state, this exception will be passed through the
* [Hooks.onOperatorError] hook, which is the way to signal undeliverable exceptions in Reactor. */
sink.error(cause)
} catch (e: Throwable) {
// In case of improper error implementation or fatal exceptions
cause.addSuppressed(e)
handleCoroutineException(context, cause)
}
}
}