怎样才可以 try-catch 方式捕获到 RxJava 的异常

2023-04-22 04:42:13 +08:00
 nnegier

我知道 RxJava 链式有专门的回调处理异常,但是我是希望它抛出来,这样我后续的一系列的同质代码就不用再一一执行了。

我用的是 Observable ,代码如下:

NginxService service = getRetrofit().create(NginxService.class);
service.updateClassification(SPUtils.getUserID(), classification)
        .blockingSubscribe(result -> {
            Logger.e(result.toString());
            if (result.isSuccessful()) {
                classificationJobDao.delete(localJobID);
            }
        });

上面的代码在外面加 try-catch 是捕获不到的,虽然这里用的是 blockingSubscribe 相当于是同步方式,但是不行,所以我也不知道为什么捕获不到,搜索未果,特来询问

8294 次点击
所在节点    Android
2 条回复
Jonney
2023-04-22 07:19:16 +08:00
将 blockingSubscribe 更改为 blockingGet
Edward4074
2023-04-22 12:32:41 +08:00
多年以前用 RxJava1 的时候,是通过自定义一个 Observer 封装 onError 逻辑处理的,后面的版本没用过,应该也可以类似的方式实现

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/934485

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX