我正在使用一个rx.lang.scala
用于理解的,我想快速失败。parameters
如果发生异常,我还希望关闭资源。如果您抛出 Exception / Throwable,doOnTerminate 是否会正确执行,如下面提供的示例所示?
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"))
}