0

我正在使用 MarkLogic 的 java-api 来评估 XQueries。有时这些 XQuery 什么都不返回(空序列)或结果未被使用。

根据文档(https://docs.marklogic.com/javadoc/client/com/marklogic/client/eval/ServerEvaluationCall.html):

注意: EvalResultIterator 必须关闭。如果您调用 eval(),请不要忘记在返回的 EvalResultIterator 上调用 close() 以释放底层资源。

当然,当您对资源进行空尝试时,这看起来不太好

try (EvalResultIterator eval = invoker.eval()) {
    // No result is returned    
}

在这种情况下真的有必要关闭 EvalResultIterator 吗?最好的方法是什么?

4

1 回答 1

2

只要打电话invoker.eval().close()。如果invoker.eval()抛出异常,则 noEvalResultIterator将返回关闭,因此无需担心finally阻塞。

于 2021-02-23T07:37:29.667 回答