gpt4 book ai didi

java - RxJava2 - 订阅的消费者抛出异常

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:44 26 4
gpt4 key购买 nike

  public void testOne() throws IOException {
throw new IOException();
}

public void testTwo() {
Completable.error(new Exception("Test exception"))
.subscribe(() -> {}, throwable -> {});
}

public void testThree() throws IOException {
Completable.error(new Exception("Test exception"))
.subscribe(
() -> {},
throwable -> {
throw new IOException(throwable);
}
);
}

第一种和第二种方法工作得很好。但如果我想捕获来自 Completable 的异常并重新抛出它,我就不能:

io.reactivex.exceptions.UndeliverableException: java.io.IOException: java.lang.Exception: Test exception

我不完全明白为什么我不能从 subscribe() 方法抛出异常?我该如何正确处理这种情况?

最佳答案

根据 akarnokd 的建议,我可以使用其中一种阻止方法。就我而言,我决定这样做:

  public void testThree() throws IOException {
final Throwable throwable = Completable.error(new Exception("Test exception")).blockingGet();
if (throwable != null) {
throw new IOException(throwable);
}
}

关于java - RxJava2 - 订阅的消费者抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48768449/

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