1

我正在使用一个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"))
}
4

0 回答 0