我遇到了与如何处理大量消费者有关的问题。
无论是否引发了已检查/未检查的异常,我都需要所有使用者结束。
我的意思是,当前我的springboot服务需要处理一堆URI
(下载,存储,将元数据保存在数据库上,依此类推……):
public List<URI> getURIs() {//...}
和
public void handleURI(URI uri) {
//download URI
//store at mongo
//get statistics
}
handleURI
可以引发未经检查的异常,例如DuplicatedKeyException
...
当前,我正在使用Java流处理它们,但是当使用者抛出任何异常时,流将停止:
this.getURIs().stream().forEach(this::handleURI);
我需要处理所有uri
,无论它们是否有问题。
我希望我解释得很好。
答案 0 :(得分:0)
您可以将方法调用包装在try / catch块中,如下所示:
this.getURIs().stream().forEach(uri - > {
try {
this.handleURI(uri)
} catch (Exception ex) {
//handle the particular uri failed case.
}
});