Я использую rx.lang.scala
для понимания, которое я хочу быстро потерпеть неудачу.Я также хочу, чтобы ресурс parameters
был закрыт в случае возникновения исключения.Будет ли doOnTerminate работать правильно, если вы выбросите Exception / Throwable, как в примере, представленном ниже?
private def createAgreement(parameters: Params, output: ByteArrayOutputStream): Try[Unit] = Try {
output
.usedIn(AgreementCreator(parameters).createAgreement) //Observable.using(resource)(observableFactory, t => { dispose(t); IOUtils.closeQuietly(t) }, disposeEagerly)
.doOnTerminate(parameters.close()) //close resource
.toBlocking
.subscribe(_ => {},
e => throw e,
() => debug("completed"))
}