夸克兵变多异常处理,如果没有结果



如果多流不返回任何东西(多流结果为空/null),我需要抛出一个特定的异常;

这是我的仓库方法:

return reactiveRepository.findAllById(idList);

返回一个

Multi<WhateverModel>

如果上面的存储库方法不返回任何/null/空流,是否有一种方法可以让我抛出异常?

我试过filter,但是如果底层的repo方法没有返回结果,它就不会被调用。

您可以在完成时检查流是否为空:

stream.onCompletion().ifEmpty().continueWith("a", "b", "c");

这可能就是你的情况所需要的。您还可以在超时前检查是否已接收到项目:

stream.ifNoItem().after(timeout)
.recoverWithMulti(Multi.createFrom().items("a", "b", "c"))

然而,并不是说Multi可能不是您在这里寻找的。在处理关系数据库时,通常使用Uni<List<?>>更好,因为它们的协议不支持流,并且,基本上,它需要通过保持连接打开来在应用程序中模拟流。

最新更新