gpt4 book ai didi

exception - RxJava在空时发出错误

转载 作者:行者123 更新时间:2023-12-04 23:16:13 25 4
gpt4 key购买 nike

如果Observable在完成之前没有发出确切的一个值,我想“抛出”自定义错误。

让我尝试显示一个示例:

Observable<SomeClass> stream = ...

stream
.filter(...)
.singleOrError(new MyCustomException())

所以我有一个SomeClass对象流。我想发出自定义错误,如果 fitler()不完全发出一个元素。

最佳答案

由于如果源不发出任何项目,则.singleOrError()会引发NoSuchElementException,因此您可以检查引发的异常实例并返回自定义异常。

    stream.filter(...)
.singleOrError()
.onErrorResumeNext(throwable -> {
if (throwable instanceof NoSuchElementException) {
return Single.error(new MyCustomException());
} else {
return Single.error(throwable);
}
});

请注意,如果 filter()发出多个项目,则 singleOrError()将抛出 IllegalArgumentException。这可以在 onErrorResumeNext()中处理,也可以在 take(1)之前简单地添加 singleOrError()来处理。

关于exception - RxJava在空时发出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41417413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com